找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3684|回复: 1

调用DLL的研究(怎么才能减少程序的大小)

[复制链接]

1112

主题

1653

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
245
威望
744 点
宅币
24261 个
贡献
46222 次
宅之契约
0 份
在线时间
2298 小时
注册时间
2014-1-26
发表于 2014-1-26 23:17:03 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
调用DLL有两种方式,一种是链接这个DLL的LIB文件,就可以直接调用DLL的函数了,另一种是动态调用DLL,用LoadLibrary载入DLL,用GetProcAddress取地址。那么到底哪种更能减少程序大小呢?我没做实验,我先来做一个分析。
1、如果链接DLL的LIB,你的程序里会有一个字符串表,以及一些其它的信息,字符串表里面有你需要用到的所有函数名。这是个不小的开销啊。
2、如果用动态调用DLL的方式,你的字符串表里面只有LoadLibrary、GetProcAddress、FreeLibrary这些,需要用到的字符串也只有DLL名,GetProcAddress函数也只需要传递一个DLL函数序号即可,不需要函数名。
因此我估计,如果用到的API不多的话,可以链接LIB,如果用到的API很多的话,还是动态调用DLL吧。

回复

使用道具 举报

4

主题

41

回帖

160

积分

用户组: 小·技术宅

UID
208
精华
0
威望
1 点
宅币
113 个
贡献
0 次
宅之契约
0 份
在线时间
10 小时
注册时间
2014-4-16
发表于 2014-4-19 13:04:45 | 显示全部楼层
方法不错,待会儿回家试试。
俺还是觉得用汇编语言写出来的东东比较小哈
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-30 02:21 , Processed in 0.042744 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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