在1998年12月的msj出版刊物中,jeffrey和我写了关于在vc6中使用delayload.docVIP

  • 1
  • 0
  • 约9.11千字
  • 约 6页
  • 2017-02-06 发布于湖南
  • 举报

在1998年12月的msj出版刊物中,jeffrey和我写了关于在vc6中使用delayload.doc

在1998年12月的msj出版刊物中,jeffrey和我写了关于在vc6中使用delayload

??在 1998年12月的MSJ出版刊物中, Jeffrey和我写了关于 在 vc6中使用DelayLoad .最终结果,是证明了它是多么cool.但是,不幸的是,还有很多人不了解DelayLoad,他们以为这个新特点是 最新版本的WINNT才有的. :DelayLoad不是最新的操作系统带的特有功能,它可以在任何win32系统中起作用.我将写一个简单例子来说明. DelayLoadProfile, 实现了一个很小功能,很多程序都可以得益于它. : ????通常的,当调用一个dll中的函数时,连接器会将dll和函数加入你的可执行文件.最后,所有引用的函数会放在imports段中.??当加载该程序的时候,win32程序加载器会扫描所有imports段的每个dll.加载,和重新定位imports段的所有函数,将信息写入 ImportAddress Table, IAT).简单说来,IAT就是一个函数指针的表.调用该 ,就到IAT中去找.??那么,DelayLoad的机理是什么呢当你为一个Dll进行DelayLoad的时候,连接器不将原来的值放入imports段,相反,它为每个DelayLoad的引入函数的名称和地址,生成一个小的根区, LoadLibrary加载Dll,然后,它调用GetProcAddress取得该函数的地址。最后,改写自己在IAT的值,以便以后的程序可以直接

文档评论(0)

1亿VIP精品文档

相关文档