我试图通过编写包装程序来从C#运行非托管的本机C ++类代码。我的C ++代码可以毫无问题地编译为静态库(.lib)。该代码取决于其他代码,我相信它们都被编译为静态库。我无法将其编译为DLL,因为存在链接器错误。

我刚刚了解到,包装程序需要编译为DLL,以便可以从C#调用它。这是真的?我不能将包装器编译为要在C#中使用的静态库吗?

最佳答案

C#无法加载.lib文件。

P / Invoke只能加载.DLL文件(它们不必命名为.DLL,但它们必须是正确的文件格式)。

09-04 08:03
查看更多