看MSDN里(/BASE:{address | @filename,key}) ,一头雾水,怎么试也不对,只能重新定义.EXE的地址,其他DLL的地址无法定义。
请达人指点。

解决方案 »

  1.   

    DLL的默认基址是0x10000000,你是用的VC吗?是的话可以在工程设置(ALT+F7)里面的"链接"选项里调整的。
      

  2.   

    rfa(实况狐狸) 兄,一切正如所说,但是我不会的就是如何在“链接”里面对DLL的装载地址进行设置,还望赐教。
      

  3.   

    嘿嘿,就是不想用rebase啊,因为用rebase后地址的改变不会在MAP文件中反映出来。书上也是推荐用VC的LINK选项直接改,可是偶只能改程序本身的装载地址,不会改所有需要的DLL的装载地址。
      

  4.   

    这样:
    ALT+F7(就是工程设置啦) ->  “Link”选项卡  ->  “Project options”编辑框  ->  在最后添加:“/base:"16进制基地址"”
      

  5.   

    回复人: rfa(实况狐狸) ( ) 信誉:100  2004-09-15 10:14:00  得分: 0  
     
     
       这样:
    ALT+F7(就是工程设置啦) ->  “Link”选项卡  ->  “Project options”编辑框  ->  在最后添加:“/base:"16进制基地址"”
      
     
    ==============================================================================
    这个我知道的撒,跟在Link选项卡的Output属性里在“Base Address”中添加16进制基地址是一样的,但是这个只能修改“.exe”的装载地址阿,修改不了每个Dll的装载地址。
      

  6.   

    一开始我没整明白你的意思。
    你是说你写了个exe,然后想控制它所隐式调用的所有dll的基址?这样好像不行吧。dll的装载地址是保存在dll的某个PE头当中的,我不清楚是否能够按照你的思路所想的办法去改变。