从c ++打开C#对话框

时间:2016-09-21 09:02:21

标签: c# c++ wpf mfc

我有一个C ++方法,可以创建一个MFC对话框。该方法如下:IDialog * createDialog() - 该对话框派生自IDialog接口; IDialog接口只有一个方法showDialog()。

我正在尝试重新创建相同的对话框,但C#wpf。有没有办法在C#中添加支持来显示C#wpf对话框,甚至从c ++调用createDialog() - > showDialog()? c ++方面应该保持不变,只允许使用CLI包装器。

1 个答案:

答案 0 :(得分:0)

我认为没有什么比这更难......

1)创建一个类并让它实现IDialog接口。 2)声明类属性ComVisible(true)

使用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 / codebase

您也可以只为COM互操作标记项目注册,但这只会帮助您开发机器。

我假设您已经知道如何实例化COM对象......