首先,如果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