调试时通过view\module可以查看到,那我在代码里该如何写才能得到呢

解决方案 »

  1.   

    对于.exe文件来说一般都是0x00400000,但是也不一定。比如word 2000就不是,
    它是0x00300000。进程的实例句柄就返回这个地址。
      

  2.   

    我觉得很奇怪,既然都是0x00400000,那运行多个EXE文件时为什么还不会冲突呢
    进程的实例句柄是什么?代码怎么写?
      

  3.   

    那是虚拟内存地址,windows系统自己处理实际内存地址,而对每个进程来说都有一个独立的运行空间,这个地址是指在这个空间内的地址,进程之间是不可以互相访问的。
      

  4.   

    这个0x00400000是个线性地址,当不采用分页机制时(这几乎是不可能的,对于windows来说)
    就是物理地址,否则还需要一层转换才能映射成物理地址。每个进程都有自己的一个“映射函数”,
    叫页表。因此,进程A的0x00400000与进程B的0x00400000会映射到不同的物理地址,所以不会发生冲突的。
      

  5.   

    GetModule大概有这样一个api来着,记不太清了。其实,对于win98来说,每个进程的高2G地址空间都是一样的。物理地址也是一样的。
      

  6.   

    ehom老大不是有一篇文章吗?固顶贴《代码动态执行》,你看看就明白了...