在C++项目中使用C#GUI

using C# GUI with C++ projects

本文关键字:C#GUI C++ 项目      更新时间:2023-10-16

我有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