我有一個創建MFC對話框的C++方法。該方法如下所示:IDialog * createDialog() - 該對話框來自IDialog接口; IDialog接口只有一個方法showDialog()。從C++打開的C#對話框
我想重新創建相同的對話框,但C#wpf。有什麼方法可以在C#端添加支持來顯示C#wpf對話框,甚至可以從C++調用createDialog() - > showDialog()? C++方面應該保持不變,只允許CLI包裝。
我有一個創建MFC對話框的C++方法。該方法如下所示:IDialog * createDialog() - 該對話框來自IDialog接口; IDialog接口只有一個方法showDialog()。從C++打開的C#對話框
我想重新創建相同的對話框,但C#wpf。有什麼方法可以在C#端添加支持來顯示C#wpf對話框,甚至可以從C++調用createDialog() - > showDialog()? C++方面應該保持不變,只允許CLI包裝。
沒有什麼很辛苦,我認爲......
1)創建一個類,並讓它執行IDialog接口。 2)聲明類屬性ComVisible(true)
using System.Runtime.InteropServices;
//這個作品,如果IDialog是一個COM接口 [標記有ComVisible特性(真)] [的Guid(「你的GUID到這裏」)] //不要讓框架生成一個可以從構建改爲建設
public class MyClass : Window, IDialog
{
public MyClass()
{
}
public void showDialog()
{
// do your magic...
}
}
需要使用註冊您的DLL:
regasm your.dll/TLB /代碼庫
你也可以標記爲COM互操作的項目寄存器,但只會幫助你的開發機器。
我假設你知道如何實例化COM對象已經...
很模糊的描述你試圖實現什麼。猜測,你需要C++/CLI和/或COM。 – IInspectable
可能這可以幫助https://support.microsoft.com/en-us/kb/828736 –
作爲一個簡短的總結:我有這個調用C++「createDialog() - > showDialog()」,它顯示了相應的MFC對話。我想要做的是用C#WPF替換MFC對話框。請注意,該對話框來自C++接口IDialog – Cristian