2016-09-21 69 views
0

我有一個創建MFC對話框的C++方法。該方法如下所示:IDialog * createDialog() - 該對話框來自IDialog接口; IDialog接口只有一個方法showDialog()。從C++打開的C#對話框

我想重新創建相同的對話框,但C#wpf。有什麼方法可以在C#端添加支持來顯示C#wpf對話框,甚至可以從C++調用createDialog() - > showDialog()? C++方面應該保持不變,只允許CLI包裝。

+0

很模糊的描述你試圖實現什麼。猜測,你需要C++/CLI和/或COM。 – IInspectable

+0

可能這可以幫助https://support.microsoft.com/en-us/kb/828736 –

+0

作爲一個簡短的總結:我有這個調用C++「createDialog() - > showDialog()」,它顯示了相應的MFC對話。我想要做的是用C#WPF替換MFC對話框。請注意,該對話框來自C++接口IDialog – Cristian

回答

0

沒有什麼很辛苦,我認爲......

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對象已經...