找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 19|回复: 0

DLL函数导入静态库生成器(DLLimpLibTool)

[复制链接]

32万

主题

0

回帖

96万

积分

超级版主

积分
964681
发表于 2024-12-6 05:09:54 | 显示全部楼层 |阅读模式
软件标签:  dll   dll函数
dll函数导入静态库生成器(dllimplibtool)支持对dll动态库产生静态导入库,并支持对改名的dll生成相应名字的导入库(通过改变工具).
本工具的主要用途是:
一、为没有静态导入库(lib)的dll生成函数导入库,方便给vc++程序调用。

二、用于其它语言编写的dll(比如bcb),导出函数是没有c语言修饰符的(例如:_函数名@n),提供vc++使用。不导入函数名称,以免链接时出错,而改为导入函数序号的静态库。

三、不生成导入函数名称的导入库,而是导入函数序号。不导入dll的函数名列表,减小程序的编译后的文件大小。
使用方法:
一、点击导出“导出*.def 文件”按钮,选择要生成导入库的dll文件,生成*.def的导出函数定义文件。如果没有c语言修饰符的(例如:_函数名@n),要自己编辑加上,n是与参数总字节数,即调用栈大小。

如果不会计算也没关系,vc++编译时会出现link错误,找不到函数名,你就需要的函数名照抄到def文件就时了(主要是“@n”的数字)。

二、生成和编辑好def文件后,点击“生成*.lib 文件”按钮,选择要编译的 *.def 文件,即刻生成同名的*.lib导入库文件。

三、写好与dll有关的*.h 文件,比如加入编译选项和函数声明文件:

//导入函数表静态库文件(以vcode.dll为例)

#pragma comment(lib, "vcode.lib")

extern "c" //其它语言编译的dll要用c风格

{

//dll函数

int _stdcall loadde(char* strfilepath,char* strfilepath2);

....

}

把dll、lib和h文件提供给vc++源程序,就可以使用了,比用api动态调用方便多了,也比较符合编程习惯和规范。

本工具只是shell程序,主要是调用工具软件:yun_impdef.exe 和 lib.exe


aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ziyuan80.com

GMT+8, 2025-8-11 07:02 , Processed in 0.070868 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表