0

我有超过 5 个 C++/OpenCV 项目,我想将它们与一个 GUI 结合在一个项目中。

示例:当我单击 Button1 时,我启动了 project1 等等......首先,我尝试了 QT,但我在 openCV 上遇到了一些链接问题,然后我使用了 MFC,我发现它很复杂,因为我不得不重写部分项目. 现在我正在考虑将 C#/WPF GUI 与 C++ .dll 一起使用,但我仍有一些问题:

1-这个想法真的可能吗?

2- 如何将现有的 C++ 项目转换为 .dll。我应该使用 .exe 还是 .cpp/.h 文件?

3 - 有什么具体的事情要做,因为我使用的是 OpenCV,我不确定它是否可以与 C# 一起使用。

4-你有什么好的教程可以帮助我吗?

最后一件事,请告诉我这将是一项简单的任务,因为我花了很长时间对项目进行编码,并且我认为 GUI 的步骤应该很简单!

谢谢

4

1 回答 1

1

有几个很好的方法取决于你想要做什么。如果您有多个项目,最简单的方法是创建一个小程序并调用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

于 2013-08-01T18:26:31.250 回答