我的.net项目需要使用用C ++编写的第三方类库。我已经尝试从项目的上下文菜单“Add a refence ...”中直接添加对此DLL的引用,但它不起作用,因为我认为这个DLL没有实现COM对象模型。
我现在有哪些选择?有人建议在这个DLL周围创建一个.net包装器,但我以前从未这样做过,所以我正在寻找一个简单的介绍,可能还有一些例子。我过去最接近的事情是使用pInvoke调用外部库中的方法(例如来自win32.dll),但在这种情况下,我可能还需要将本机C ++类型包装到.net中的等效表示中,也可能是一些要考虑的实例变量,所以我不知道pInvoke是否足够。
如果有人能指出我正确的方向,我真的很感激,如果需要更多信息,请告诉我。
非常感谢。
答案 0 :(得分:2)
我知道有两个选项
答案 1 :(得分:2)
假设您没有库的源代码,或者还有另一个原因导致您无法将库转换为C ++ / CLI程序集。
您可能对SWIG(http://www.swig.org/)包装器生成器感兴趣。您可以为SWIG提供一个C ++库的公共接口,它为任何支持的后端语言编写一个包装器,C#恰好是其中之一。
答案 2 :(得分:1)