请问如何在程序运行时得知程序的运行起始地址? 调试时通过view\module可以查看到,那我在代码里该如何写才能得到呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对于.exe文件来说一般都是0x00400000,但是也不一定。比如word 2000就不是,它是0x00300000。进程的实例句柄就返回这个地址。 我觉得很奇怪,既然都是0x00400000,那运行多个EXE文件时为什么还不会冲突呢进程的实例句柄是什么?代码怎么写? 那是虚拟内存地址,windows系统自己处理实际内存地址,而对每个进程来说都有一个独立的运行空间,这个地址是指在这个空间内的地址,进程之间是不可以互相访问的。 这个0x00400000是个线性地址,当不采用分页机制时(这几乎是不可能的,对于windows来说)就是物理地址,否则还需要一层转换才能映射成物理地址。每个进程都有自己的一个“映射函数”,叫页表。因此,进程A的0x00400000与进程B的0x00400000会映射到不同的物理地址,所以不会发生冲突的。 GetModule大概有这样一个api来着,记不太清了。其实,对于win98来说,每个进程的高2G地址空间都是一样的。物理地址也是一样的。 ehom老大不是有一篇文章吗?固顶贴《代码动态执行》,你看看就明白了... 用户SOAP的朋友请进,通过SOAP协议方式上传大量文件问题? 怎么在视频的窗体上显示时间?或其它文字? 怎样才能知道安装操作系统(winXP)的系列号? 关于使用Wininet单元 InternetDial无法进行拨号的问题 请问如何判断一个字符串是数字? mediaplayer 循环播放几个视频文件 哪位高手把下面的C代码转换为delphi access数据导入另一个access数据库, AccessApplication1怎样用? 怎样捕捉控件的Win消息 paradox类型的表如何导成mssql形式 感谢风清兄! MessageDlg()的焦点 如何设置?
它是0x00300000。进程的实例句柄就返回这个地址。
进程的实例句柄是什么?代码怎么写?
就是物理地址,否则还需要一层转换才能映射成物理地址。每个进程都有自己的一个“映射函数”,
叫页表。因此,进程A的0x00400000与进程B的0x00400000会映射到不同的物理地址,所以不会发生冲突的。