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包装器。
我觉得没什么难的…
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对象…