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