1

如何在 C# 中使用 C++ 头文件和库?我目前正在处理我的项目,我想使用仅在 C++ 中可用的基于像素的自适应分段器 (PBAS)。有办法吗?

4

1 回答 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 回答