由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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章