将MinGW编译的DLL添加到Visual Studio失败

时间:2013-09-03 18:28:21

标签: c# visual-studio-2010 dll mingw

我在C中编写了一个库,希望能够在C#,C ++和Python中使用(其他语言会很好,但现在不是必需的)。该库是在Linux中开发的,我可以通过MinGW在Windows上编译它。我遇到的问题是尝试在Visual Studio 2010解决方案中添加.dll作为参考。我得到的错误是:

  

无法添加对“C:\ path \ to \ libmylibrary.dll”的引用。请确保该文件是可访问的,并且它是有效的程序集或COM组件。

我花了一些时间试图查看我是否错误地编译了DLL,但是没有看到任何明显的东西。我使用的一些参考文献是thisthisthis

如果需要更多信息,我可以提供一些可编译的示例源代码。

1 个答案:

答案 0 :(得分:2)

有两种方法可以将“DLL”添加到C#项目中。

如果DLL是CLR程序集,意味着它是遵循CLR的托管代码,那么您可以将其添加为“引用”。

如果DLL不是CLR程序集,则可以使用P / Invoke结构手动加载代码。 P / Invoke上有很多在线文档。这很麻烦,但它确实有效。您需要使用[DllImport]属性声明每个DLL条目函数,并手动加载DLL。在SO中搜索p / invoke。

根据您的错误消息,您尝试将普通DLL加载为CLR DLL。这意味着你必须弄清楚如何使用P / Invoke。