VC 调用 MinGW 生成的dll

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

 

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

展开阅读全文

没有更多推荐了,返回首页