如何根据已有的c++程序编写基于c#的WPF界面
答案:1 悬赏:40 手机版
解决时间 2021-11-30 11:49
- 提问者网友:蓝琪梦莎
- 2021-11-29 22:42
如何根据已有的c++程序编写基于c#的WPF界面
最佳答案
- 五星知识达人网友:duile
- 2021-11-29 23:06
我做过类似的事情,给你一个具体的思路。
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对象部署麻烦些,需要注册。
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对象部署麻烦些,需要注册。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯