VC++的.lib有两种:一种是静态DLL,其中包括函数的实际代码,一种是有DLL生成的.lib,其中并不包含代码,只是包含DLL的链接信息。对于后一种比较简单,只需要使用C++ Builder中的命令行工具implib直接对DLL进行进行转换就可以了,不必理会VC++的.lib文件。但是前一种就很麻烦了,因为VC++和BCB的.lib格式差别很大,无法直接使用或转换。以前我也遇到过类似的问题,一个硬件厂商只提供了VC++的库文件,为了在BCB中使用,首先在VC++中建立一个DLL,添加若干函数,这些输出函数供BCB调用。在这些函数中调用.lib中的函数。这样BCB调用DLL中的函数,DLL中的函数再调用.lib中的函数,虽然麻烦些,但可以解决问题。
用Program Files\Borland\CBuilder6\Bin\coff2omf.exe转换就了!
主持人注:coff2omf可以转换微软的COFF格式为Borland使用的OMF格式。但是这个工具有一些限制:转换一般的C函数还可以,转换C++类有困难;这个工具在处理新版本的VC++生成的库时可能有问题。
另外,可以参考“Using Visual C++ DLLs in a C++Builder Project”
http://www.bcbdev.com/articles/vcdll.htm和
http://www.bcbdev.com/articles/vcdll2.htm 据说VC的lib文件跟BCB不通用
不过你也不用急啊,有dll文件可以自已生成lib文件滴
implib filename.lib filename.dll
就可以生成一个lib
如果你有DLL的话可以用IMPLIB从DLL中生成符合BCB要求的LIB文件。也可以用COFF2OMF来转换LIB文件的格式。
阅读(2821) | 评论(0) | 转发(0) |