在C ++ GUI中使用C#GUI

时间:2013-08-01 18:10:56

标签: c# c++ opencv

我有超过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的步骤应该很简单!

谢谢

1 个答案:

答案 0 :(得分: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