windows编程
xiaoholmes
这个作者很懒,什么都没留下…
展开
-
动态链接库中函数的地址确定---PLT和GOT
前面写过动态链接库 延迟绑定的一篇博文,那篇文章我非常喜欢,但是当时刚搞清楚,自己写的比较凌乱,我最近学习了Ulrich Drepper的How to write share library,学习了几篇其他的讲述动态链接的文章,再次整理了这篇文章。 有一个问题是我们调用了动态链接库里面的函数,我们怎么知道动态链接库里面的函数的地址呢?事实上,直到我们第一次调用这个函数,我们并不知转载 2014-05-09 15:21:05 · 933 阅读 · 0 评论 -
动态链接库与静态链接库
静态库就是将需要的代码直接链接进可执行程序;动态库就是在需要调用其中的函数时,根据函数映射表找到该函数然后调入堆栈执行。如果在当前工程中有多处对dll文件中同一个函数的调用,那么执行时,这个函数只会留下一份拷贝。但是如果有多处对lib文件中同一个函数的调用,那么执行时,该函数将在当前程序的执行空间里留下多份拷贝,而且是一处调用就产生一份拷贝。 做成的lib文件本身比较大,但不必附带dll;做成转载 2014-05-09 15:17:27 · 449 阅读 · 0 评论 -
动态链接库的显示加载和隐式加载的区别
使用动态DLL有 两种方法对于你的程序调用动态库时没有任何区别,只是你在编程时,步骤是不一样的。显式调用麻烦了点,但可以没有相应的lib库;隐式调用,使用起来比较简单,有函数的声明就可以了,但必须有lib库。 在VC中两种方式的具体方法: 一、动态库的隐示调用: 在 VC 工程中直接链接静态输入库XXX.lib,然后即可像调用其它源文件中 的函数一样调用DLL中的函数了。 二、动态库的原创 2014-05-09 16:27:10 · 14450 阅读 · 0 评论