由DLL文件生成LIB文件

网上广泛使用的方法,经过测试没有成功! 因为DLL导出名和编译链接时使用的名称不一样,导致编译通不过。一种是xxx@nn格式,还有一种是__imp_xxx@XYZ格式。 如果手动修改DEF文件里面的函数名为链接所需的名字,编译能通过,但运行时提示找不到XXX函数的入口点。

经过一番百度,终于找到一位高人所写的文章和工具解决了我的问题! 文章地址: https://bbs.csdn.net/topics/390707917

生成DEF文件后,手工修改函数为以下格式:

LIBRARY demo.dll

EXPORTS
Initialize@12=Initialize
CalcCRC@8=CalcCRC

Initialize@12=Initialize前面的@12表示这个函数有3个参数,等号后面的Initialize是DLL导出函数的原始名字。 生成lib文件后,再用ImpLibEditor工具的Change To [Undecorate]功能修改函数名,最后另存为新的lib文件即可。

相关工具已经上传到网盘。下载地址: https://share.weiyun.com/5zM4Wfq