在程序设计中常常需要使用其它编程语言写的dll,最近我就碰到这个问题,别人使用BCB写了的DLL,而我是使用VC写的程序,我的程序中需要调用这个DLL。按照常规的方法加入lib,然后添加声明,编译链接,总是出错“error LNK2001: unresolved external symbol __imp__xuexi_Close”,经过一番折腾,最后总算是可以使用了。
使用BCB写的DLL如果不做任何的修改是无论如何也没法在VC的程序中使用的。原因就是BCB生成的lib与VC的不一样;
有2个方法:方法一
使用BCB自带的IMPDEF程序将生成的DLL导出一个DEF文件,命令格式为 IMPDEF XX.DEF XX.DLL,其中的XX表示文件名,执行这个命令后会生成一个文件XX.DEF
LIBRARY xuexi.dll
EXPORTS
_xuexi_Close @1
_xuexi_Init @2
接着修改XX.DEF文件是符合VC规则如下
LIBRARY "XUEXI"
DESCRIPTION "XUEXI LIBRARY"
EXPORTS