在C++项目中使用C#GUI
using C# GUI with C++ projects
我有5个以上的C++/OpenCV项目,我想将它们组合在一个带有一个GUI的项目中。
示例:当我点击按钮1时,我会启动项目1等。。。首先,我尝试了QT,但我在openCV中遇到了一些链接问题,然后我使用了MFC,我发现它很复杂,因为我必须重写部分项目。现在我正在考虑将C#/WPF GUI与C++.dll一起使用,但我仍然有一些问题:
1-这个想法真的可行吗?
2-如何将现有的C++项目转换为.dll。我应该使用.exe文件还是.cpp/.h文件?
3-有什么具体的事情要做吗,因为我正在使用OpenCV,我不确定它是否能与C#一起工作。
4-你有什么好的教程可以帮助我吗?
最后一件事,请告诉我,这将是一项简单的任务,因为我花了很长时间对项目进行编码,我认为GUI的步骤应该很容易!
感谢
根据您想要做的事情,有几个好方法。如果您有多个项目,最简单的方法是创建一个小程序并调用Process.Start(example.exe)
。Process.Start()只是以为该扩展名定义的任何默认方式打开一个文件。当然,这实际上不会集成到一个GUI中,但基本上没有任何开销。
您的另一个选择是将所有内容编译到类库中,并将C#应用程序中的引用添加到生成的.dll文件中。这样就可以很容易地调用.dll文件,而无需进一步实现的开销。
将您的特定项目编译到类库中需要什么很难说,因为它取决于您可以抢救的内容以及在C#应用程序中需要重新实现的内容。最简单的方法是废弃GUI,此时只关心代码。过去,您可以使用WPF重新实现GUI本身。
编译到.dll文件相对简单,一旦编译了.dll文件并向C#应用程序添加了引用,从.dll文件调用方法就像从应用程序本身的类调用一样简单。我会注意到,如果你想访问方法,它们将需要public关键字,但我认为如果它们已经在工作应用程序中实现,它们很可能会这样做。
关于在VS11中生成类库的精彩教程可以在这里找到:http://msdn.microsoft.com/en-us/library/vstudio/ms235636.aspx
- C++GTKMM gui循环依赖关系
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 如何在带有 gdb GUI 前端的 ARM gdbserver 的 PC 上执行远程 gdb 会话?
- 在 Gui Win32 中创建子窗口C++
- 如何防止 std::thread 在 QT 中冻结 GUI?
- 调试控制台 ChessEngine.exe "used"在另一个应用程序(国际象棋 GUI)中
- 更改 Windows GUI 中静态文本框的字体大小
- 我不知道如何使用代码块win32 gui
- Qt GUI使用Qfiledialogbox和qlabel显示视频,这是我的代码
- QtConcurrent - 在发布到 UI 线程的数千个结果中保持 GUI 响应
- 德尔福在回调中出现 GUI 问题
- 从 GUI 文件资源管理器执行程序,并且不生成终端
- 线程和 GUI 处理
- C++ WinAPI[GDI].自定义 gui 正确重绘
- Qt,操作缓慢时不要冻结GUI输入元素
- GCP 或 AWS 是否支持 C++ 和 GUI 应用程序开发?
- 试图打开并读取一个.txt文件,但它从原始文件中删除了实际文本(Qt GUI C++
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行