经常碰到类似:BCB contains invalid OMF record,type 0x21(possibly COFF)错误,该错误是由于BCB使用VC的lib兼容不足导致。
解决方法(1):从vc生成的动态库导出c++builder可用的导入库(注意:不是静态库),在Borland目录下找到Borland\CBuilder6\Bin里面有一个implib.exe,它可以将VC的DLL转译为BCB的lib;你只需将VC的DLL拷贝到该同级目录下,编写一个.bat文件:implib -af XXX.lib XXX.dll 就会将XXX.dll编译成BCB的XXX.lib再将此lib拷贝到应用程序工作目录下就可以正常运行了
解决方法(2):把vc生成的静态库(注意:不是导入库)转换成c++builder可用的静态库;在Borland目录下找到Borland\CBuilder6\Bin里面有一个coff2omf.exe,先把需要转换的VC的ml.lib放在C盘根目录下,然后生成新的C++Builder格式下的ml1.lib文件,在命令行:
coff2omf -lib:ms c:/ml.lib bcb c:/ml1.lib
本文介绍了解决BCB使用VC库时出现的BCBcontainsinvalidOMFrecord,type0x21(possiblyCOFF)错误的方法。提供了两种解决方案:一是通过implib.exe将VC的DLL转为BCB可用的lib;二是用coff2omf.exe将VC的静态库转为BCB静态库。
1万+

被折叠的 条评论
为什么被折叠?



