【发布时间】:2013-07-25 13:02:03
【问题描述】:
我有一个头文件和一个使用 C++ 创建的 .lib 文件。
现在我想在 C# 程序中使用它。这可能吗?
【问题讨论】:
标签: c# c++ visual-studio-2010 linker static-libraries
我有一个头文件和一个使用 C++ 创建的 .lib 文件。
现在我想在 C# 程序中使用它。这可能吗?
【问题讨论】:
标签: c# c++ visual-studio-2010 linker static-libraries
您可以创建一个托管包装器,请在此处查看分步说明:
【讨论】:
没有传统的链接器可以让您导入库。最好的办法是编译成 COM 库并使用互操作来使用它。
【讨论】:
不直接。您可以通过 P/Invoke 或使用 C++/CLI 的混合模式程序集与非托管 DLL 进行互操作。无论哪种方式,您都必须创建一个包装器项目,或者将原始 .lib(如果您有源代码)重新编译为 DLL。
【讨论】:
我不知道 .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
【讨论】: