在Visual Studio 2010 C ++ / CLI项目中使用MinGW / GCC构建的DLL

时间:2010-10-10 19:20:11

标签: visual-studio-2010 qt dll c++-cli mingw

我有一个建立在Qt和Google Protocol Buffers之上的通信库。它目前正在Windows上使用MinGW / GCC构建。我的目标是在.NET上的C#中使用相同的库,在顶部使用C ++ / CLI(使用托管代码桥接非托管代码)的瘦包装器的帮助下。

我尝试在我的C ++ / CLI项目中直接使用MinGW生成的DLL,但我不断收到链接器错误(现在不能记住错误代码,但是关于缺少令牌和函数/签名的东西)。

第一个问题是:我是否应该能够将MinGW生成的DLL与Visual Studio编译器/链接器一起使用?或者我是否需要再次编译库,仅对所有项目使用VS编译器?

如果我能够直接使用MinGW生成的DLL,我如何在Visual Studio 2010中引用它?在项目设置中,它似乎寻找* .lib文件,但我在MinGW / GCC的输出中找不到任何.lib文件。它确实生成* .a文件,但似乎Visual Studio不处理这种文件..

我还应该提到Qt和protobuf也都是用MinGW编译的。但是我当然可以在必要的时候重新编译VS 2010中的所有部分。尽管我们的buildserver已经有了使用MinGW的工作设置,但本来可以很好地保存重新编译时间。

1 个答案:

答案 0 :(得分:2)

使用它的最简单方法是使用Visual Studio重新编译它。这是我假设您打算使用的接口中使用的C ++类型和类。

如果您具有此库的C接口,则可以通过LoadLibrary动态加载库,并使用GetProcAddress访问这些函数。

然而,它完全取决于您打算如何使用该库。