我有一个建立在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的工作设置,但本来可以很好地保存重新编译时间。
答案 0 :(得分:2)
使用它的最简单方法是使用Visual Studio重新编译它。这是我假设您打算使用的接口中使用的C ++类型和类。
如果您具有此库的C接口,则可以通过LoadLibrary动态加载库,并使用GetProcAddress访问这些函数。
然而,它完全取决于您打算如何使用该库。