请问:如何在DLL文件中保存一个内存地址,让主程序写入地址后,子程序再读取?

解决方案 »

  1.   

    恩。我也想知道。。DLL会被系统影射到没个进程的地址空间里,,但是两个东西的地址要不要换算,如何换算还不知道,具体还没做过尝试,
    关注楼下有经验的指点一下
      

  2.   

    楼主手上有DELPHI的。可以先自己尝试一下。看看同一个偏移地址,在DLL中和主程序里到底是不是一样的。想来应该不一样。你先看看,然后回帖,我想知道。谢谢了。。
      

  3.   

    我想应该不用,无论exe还是dll都是遵循PE格式的,其内部地址必然都是相对地址,而我们在运行时刻得到的变量或函数地址已经是通过操作系统转换后的绝对地址了,也就是说是唯一的了。
      

  4.   

    主程序写地址,然后子程序在根据这个地址执行?不太可能的,两个程序具有独立的进程空间,除非使用注入技术修改DLL的导出表或进程的引入表。否则没有作用的!因为系统采用的虚拟地址,其中虚拟地址到实际内存地址的映射表是系统管理的,你是不能改变的!否则系统太容易崩溃了,呵呵!