如何根据已有的c++程序编写基于c#的WPF界面
看了很多帖子,到最后思路理清就是通过Dll文件进行调用,但是引用的时候提示出错,卡在这一步不能再往下进行,有没有人之前做过类似的工作,能把具体的资料链接发给我呢?万分感激...
看了很多帖子,到最后思路理清 就是通过Dll文件进行调用,但是引用的时候提示出错,卡在这一步不能再往下进行,有没有人之前做过类似的工作,能把具体的资料链接发给我呢?万分感激!
展开
1个回答
展开全部
我做过类似的事情,给你一个具体的思路。
1、做好WPF界面控件;
2、借助WPF、WinForm的互操作技术,用WinForm用户控件重新包装一下WPF界面控件(因为WPF控件没有句柄,而WinForm控件有句柄);
3、C++程序中预留一个空的容器控件,用来放置C#WinForm控件;
4、通过C++/CLR创建WinForm控件的实例,并得到句柄;
5、获取C++容器控件的句柄;
6、通过SetParent将WinForm控件添加到C++容器控件中。
还有一种方式是,用WinForm把WPF界面控件包装成COM对象,然后C++调用COM对象即可。
1、做好WPF界面控件;
2、借助WPF、WinForm的互操作技术,用WinForm用户控件重新包装一下WPF界面控件(因为WPF控件没有句柄,而WinForm控件有句柄);
3、C++程序中预留一个空的容器控件,用来放置C#WinForm控件;
4、通过C++/CLR创建WinForm控件的实例,并得到句柄;
5、获取C++容器控件的句柄;
6、通过SetParent将WinForm控件添加到C++容器控件中。
还有一种方式是,用WinForm把WPF界面控件包装成COM对象,然后C++调用COM对象即可。
追问
第一种方法需要添加的代码多吗?会不会要把很多函数是实例话?我是新手,目前只想尽快完成任务,麻烦您解答啦
追答
1、代码量不算多,但是用到的技术有WPF、WinForm、C++/CLR,其中C++/CLR是关键性技术,百度一下可以找到相关资料。
2、后一种方式更简单一些,但是COM对象部署麻烦些,需要注册。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询