我正在启动一个新的小项目,其中缺少图形界面和一些来回处理数据的功能,但代码中复杂且耗时的部分存在,并且是用c/c++编写的。以前我使用过win32api、MFC来绘制图形,但我想要一个看起来更现代、更新的东西,以及一个维护和更新更简单的东西。我可能应该提到,我也想尝试并学习一些新的东西。。。
几年前,我尝试使用pinvoke将c++组件集成到c#中。结果弄得一团糟。但那是很久以前的事了。。。
有什么建议吗?我应该用什么?
先决条件:Windows(XP或7)和VS 2005、2008或2010。Eclipse也应该可以正常工作。
您可以尝试QT或wxWidgets,它们都是很好的C++GUI工具包。如果您在c++代码中没有太多的入口点,yuo可以将它们封装在几个c#类中,并使用WPF或windows形式(.NET4或2)。无论如何,这需要"混合托管代码和非托管代码"。
我自己已经很久没有尝试过了,但据我所知,目前.NET与托管/本地的集成非常好:
- 不需要额外的修补或依赖;当项目在Visual Studio中时,您就可以开始了
- 非常直接的GUI编码
- 维护简单
- 您为GUI选择的任何语言:C#、F#、J#、托管C++等(当您想尝试新的东西时会派上用场)
我建议使用C++/CLI(也称为托管C++)在C#和C++之间进行集成。主要项目是使用C#类进行可视化设计的GUI的C++/CLI。不需要钉钉子。所有代码(GUI和库部分)甚至可以包含在一个可执行文件中(但取决于.Net的存在)
如果预算不是一个障碍(在这种情况下大约为150美元),我还会提到C++Builder-可视化GUI设计和本地可执行文件(无.Net依赖性)
使用QT编写GUI,并在现有C++代码中进行链接。