VC 调用 MinGW 生成的dll good

首先,如果dll 中导出了C++的类,那么就不要折腾了。不同的编译器编译出来的C++代码是不保证通用的。如果dll中只是一些C 函数,那么是可以互相调用的。

MinGW 生成dll时即使生成了 .a 文件也是不能用到VC 上的(至少我用的VC2010版本是不行了,表现为生成的程序 Debug模式下可以运行,但是Release 模式下却无法运行)。

如果生成dll时也生成的def文件那么可以这样:

比如我的dll 文件叫做 test.dll ,对应的def文件为 test.def

执行下面这条语句:

LIB /DEF:test.def /MACHINE:IX86

就会生成一个test.lib 文件,之后就可以在 VC 中使用了。

如果连def文件也没有,那么先要生成def文件,可以从网上下载一个小工具叫做pexports。

pexports.exe test.dll > test.def

之后在生成lib文件。

LIB /DEF:test.def /MACHINE:IX86

http://blog.csdn.net/liyuanbhu/article/details/44650641

原文地址:https://www.cnblogs.com/findumars/p/6546089.html