当使用隐式链接的方法调用 DLL 中的导出函数时,需要代码的头文件、导入库lib和动态链接库。如何缺失导入库lib,将无法使用隐式链接的方式调用 DLL中的函数。幸运的是,通过一些手段可以从DLL中直接生成导入库lib。
生成导入库流程
步骤如下:
- 从Dll中生成对应def文件,内容如下:
1 | include '..\implib.inc' |
- 根据def文件生成DLL的导入库lib
自动生成导入库
生成DLL导入库lib的方案有很多,最便利的方法是使用 ImpLib SDK 工具。具体教程如下:
- 从官网下载最新的 ImpLib SDK 并解压,将 ImpLib SDK 的bin目录添加到系统环境变量 PATH 下。
- 使用工具dll2def自动生成DLL的def文件
1 | \bin\dll2def c:\windows\system32\kernel32.dll kernel32.def |
- 将生成的kernel32.def文件复制到 ImpLib SDK\src\Win32 文件下,然后运行 build_libs.bat,或者运行如下命令:
1 | \bin\fasm kernel32.def kernel32.lib |
参考链接
- DLL导出类和函数,by huangwang.
- ImpLib SDK Guide,by implib.