首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为什么要改变DLL的基地址?该如何解决

2012-01-24 
为什么要改变DLL的基地址?最近在研究SharpDevelop.其中Main/ICSharpCode.SharpDevelop.Widgets工程的默认

为什么要改变DLL的基地址?
最近在研究SharpDevelop.   其中Main/ICSharpCode.SharpDevelop.Widgets工程的默认基地址从0x400000改写为0x8240000.请问,为什么要改写这个地址?   谢谢!

[解决办法]
因为同一个进程一般会同时载入多个DLL。如果每个DLL都用VC默认的起始地址,
那么会发生冲突。WINDOWS OS会做额外的工作来解决地址冲突。办法是把 400000的
地址只给一个DLL,把其他DLL加载到其他地址。最大的坏处是加载速度变慢,效率变低。
[解决办法]
是根据重定位表中的几个地址算出来的 装入地址+页地址+页内地址

热点排行