我有一个C ++方法,可以创建一个MFC对话框。该方法如下:IDialog * createDialog() - 该对话框派生自IDialog接口; IDialog接口只有一个方法showDialog()。
我正在尝试重新创建相同的对话框,但C#wpf。有没有办法在C#中添加支持来显示C#wpf对话框,甚至从c ++调用createDialog() - > showDialog()? c ++方面应该保持不变,只允许使用CLI包装器。
答案 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对象......