c++builder编译带有vc dll时出现linker error,unresovled external ‘_xxxxx’
原因,网上很多人给出implib的用法:
implib aaa.lib aaa.dll是不完整的。
需要改为:
implib -a aaa.lib aaa.dll
所以的所以,很多人不熟悉,查资料。有的人查到对的,有的人查到错误的用法。我就是这样,之前编译1.1.1a的dll时正确,结果到0.9.8时遇到标题的错误。
查资料:
-a Add ‘_’ alias for cdecl functions for compatibility with Microsoft libraries
-c Warnings on case sensitive symbols
-f Force imports by name
-w No warnings.
用C++Builder的implib工具生成DLL(VC生成DLL)对应的lib文件。
如:implib -a xxx.lib xxx.dll(注意,implib一定要带-a开关)。
生成lib文件之后,C++Builder便可以使用这个lib文件了。
提示:使用和不使用开关-a。可以用ultredit对比得到函数名前面带有下划线。所以编译时才出现提示。带上开关后编译就正常了。