有些时候, 我们手头只有*.dll和*.h文件, 没有*.lib. 而VC链接必须要提供*.lib. 我们可以通过本文描述方法快速生成*.lib文件.
我们需要以下三步来为任意dll生成lib:
(1) 工具dumpbin.exe生成*.def文件
(2) 编辑*.def文件以满足工具lib.exe的需要
(3) 工具lib.exe生成*.lib
我们先对所涉及的工具程序dumpbin.exe和lib.exe做一简单描述:
dumpbin.exe和lib.exe随微软集成开发平台发布, 编译环境安装后在如下路径查找:
(A) VS2010: 位于安装目录下的VC/bin中. 同时需要mspdb100.dll, 该dll位于安装目录下的Common7/IDE文件夹.
例如, 我安装VS2010在D:/Program Files/Microsoft Visual Studio 10.0下, 则两者目录分别如下:
D:/Program Files/Microsoft Visual Studio 10.0/VC/bin
D:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE
(B) VC++6.0: 位于安装目录下的VC98/Bin中. 同时需要mspdb60.dll, 该dll位于安装目录下的Common/MSDev98/Bin文件夹.
例如, 我安装VC++6.0在D:/Program Files/Microsoft Visual Studio下, 则两者目录分别如下:
D:/Program Files/Microsoft Visual Studio/VC98/Bin
D:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin
为了方便在路径下不带工具程序全路径, 我们需要设置环境变量. 如下:
XP-EN-SP3版本下选择MyComputer-->Properties-->Advanced-->Enviroment Variables.
如果只想对当前用户生效, 则添加在 User Variables for username. 想对全部用户生效, 则添加在System Variables项.
使用逗号分隔每一项. 例如, 我设置只对当前用户有效, 针对VS2010的更改:
D:/Program Files/IDM Computer Solutions/UltraEdit/;D:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/;D:/Program Files/Microsoft Visual Studio 10.0/VC/bin/
对于中文XP, 应该是: 我的电脑-->属性-->高级-->环境变量. 然后更改用户变量或者系统变量. 方式同英文版.
现在, 我们可以在任意目录下执行它们了, 请直接选择Start-->Run(中文为开始-->运行), 输入cmd进入命令行环境, 输入dumpbin或者lib. 如果输出找不到, 则表示上述设置有问题, 请详细检查. 如果正常, 则输出为两者的帮助信息.
我们以gdi32.dll(位于C:/WINDOWS/system32目录下)为例来说明. 选择Start--