c#对话框从c++打开

本文关键字:打开 c++ 对话框 | 更新日期: 2023-09-27 18:08:15

我有一个c++方法来创建一个MFC对话框。方法看起来像:IDialog* createDialog() -对话框是从IDialog接口派生的;IDialog接口只有一个方法showDialog()。

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

c#对话框从c++打开

我觉得没什么难的…

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

使用System.Runtime.InteropServices;

//如果IDialog是一个COM接口,则此操作有效[ComVisible(真正的))[Guid("your Guid goes here")]//不要让框架生成一个可以从构建到构建改变的Guid

public class MyClass : Window, IDialog
{
   public MyClass()
   {
   }
   public void showDialog()
   {
       // do your magic...
   }       
}

需要使用注册DLL:

reasm your.dll/tlb/codebase

你也可以把项目寄存器标记为COM互操作,但这只会对你的开发机器有帮助。

我假设你已经知道如何实例化COM对象…