如何在C#中使用C ++标头和库?我目前正在开发我的项目,我想使用仅在C ++中可用的基于像素的自适应分段器(PBAS)。有办法吗?
答案 0 :(得分:1)
很大程度上取决于你要打电话的内容以及它的复杂程度。对于简单的事情,您可以使用DllImport属性。例如:
[DllImport("User32.dll")] static extern Boolean MessageBeep(UInt32 beepType);
将从User32.dll导入MessageBeep。执行此操作时,您必须非常清楚您正在从托管代码调用非托管代码,并且可能会以不同方式处理指针。
如果您有tlb(类型库)或自注册dll,通常可以在Visual Studio中选择它作为引用,并为您创建绑定(称为Interop)。
正如评论中提到的,您还可以使用C ++ / CLI编写一个包装类,它将桥接托管和非托管世界。
如果是我,我首先要看看VS是否会接受这个作为参考(如果可用的话,首先尝试使用tlb)。