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