我一直在开发C#应用程序已经有一段时间了,但是最近我得到了一个需要计算机视觉的项目。因此,我的公司选择购买特定计算机视觉包的API / SDK许可证。但是,此API / SDK在:
中提供C ++,ActiveX 和基于Direct Show的API / SDK进行集成。
我的问题是天气C ++库是以.dll文件还是其他形式出现的?
如果是这样,有什么选择可以将c ++ API / SDK集成到C#WPF程序中,以便轻松构建接口并利用其功能?混合不同的语言会被认为是不好的做法吗?
用c ++简单地开发整个程序会更容易吗?
答案 0 :(得分:2)
C ++中有两种类型的库:dll和lib。 Dll文件是动态链接的(也就是运行时只需要),而lib文件将链接到您的程序中。
该库可能是一个或多个带有支持lib文件的dll文件,以便于访问这些方法(否则,在使用c ++时,您必须手动查找库中的方法)。
要在C#中使用它们,您有两个选择:构建C ++ / CLI包装器或使用DllImport属性导入方法。
无法真正推荐使用包装器方法。如果在c#和c ++之间进行双向通信,我只会使用它(并且通过两种方式,我的意思不仅仅是将基本参数传递给c ++,而是返回基本值)。
DllImport属性可能就是你要找的东西。有关它的信息可以在MSDN(https://msdn.microsoft.com/en-us/library/aa984739%28v=vs.71%29.aspx)中找到。
您是否想自己编写c ++取决于您自己。如果你想创建一个用户界面,而不是在自己的代码中做太多性能关键的东西,我会坚持使用C#,让你有宾至如归的感觉; - )