0xAA55 发表于 2014-1-26 23:17:03

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

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

0x0208 发表于 2014-4-19 13:04:45

方法不错,待会儿回家试试。
俺还是觉得用汇编语言写出来的东东比较小哈
页: [1]
查看完整版本: 调用DLL的研究(怎么才能减少程序的大小)