6

我有一个头文件和一个使用 C++ 创建的 .lib 文件。

现在我想在 C# 程序中使用它。这可能吗?

4

4 回答 4

8

您可以创建托管包装器,请参阅此处的分步说明:

http://tom-shelton.net/?p=95

于 2013-07-25T13:07:59.397 回答
1

没有传统的链接器可以让您导入库。最好的办法是编译成 COM 库并使用互操作来使用它。

于 2013-07-25T13:06:11.890 回答
1

不是直接的。您可以通过 P/Invoke 或使用 C++/CLI 的混合模式程序集与非托管 DLL 进行互操作。无论哪种方式,您都必须创建一个包装器项目,或者将原始 .lib(如果您有源代码)重新编译为 DLL。

于 2013-07-25T13:06:21.080 回答
1

我不知道 .lib 文件。但我确实知道,如果您将代码编译为 DLL,您可以将其用作非托管代码。

为此,您需要参考

System.Runtime.InteropServices

并且您将需要定义要使用的方法并为其提供 DllImport 属性。像这样的东西:

[DllImport("MyCPPDll.dll")]
public void SomeMethod(int someParameter);

这里有一些链接可以帮助您指出正确的方向:

http://msdn.microsoft.com/en-us/library/26thfadc(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute(v=vs.100).aspx

于 2013-07-25T13:19:25.180 回答