首页
社区
课程
招聘
[求助]求教一个编译时遇到的问题,费解中~
发表于: 2010-7-25 07:12 4440

[求助]求教一个编译时遇到的问题,费解中~

2010-7-25 07:12
4440
VC6.0编译时遇到的问题.

我在最前面的变量定义的时候,定义了一个变量,并且赋了一个内存地址的值给这个变量,如下:

const DWORD MemoryAddre=0x01960240;

这个地址在是16位制的时候的数值是:01960240
这个地址在10位进制的时候的数值是:26608192

当我调用这个我自己定义的内存地址变量MemoryAddre的时候,我发现他变成了10位进制

编译器自动帮我变的,MemoryAddre本该=0x01960240,结果MemoryAddre=26608192了

::ReadProcessMemory(FarHandle,(LPCVOID)MemoryAddre,&hProcId,4,NULL);

到这里的时候,MemoryAddre的值就是26608192,我根本没有办法取地址

后来我又发现,我的程序初始化的时候,MemoryAddre就已经是26608192

为什么编译器会把我的赋值给MemoryAddre的地址,转成10位制赋值给MemoryAddre这个变量

求解答:

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
。。。这有什么关系么?计算机里都是二进制。不管你是10进制还是16进制都只是一个表面上的表现而已。
2010-7-25 09:37
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不是,是带地址的时候,会出现错误

::ReadProcessMemory(FarHandle,(LPCVOID)MemoryAddre,&hProcId,4,NULL);

比如说这一句,正常情况下,&hProcId应该拷贝MemoryAddre这个地址,即0x01960240

但现在,,,&hProcId拷贝过来的MemoryAddre这个地址变成 26608192了

这不乱了吗?

26608192正好是0x01960240的10进制数值表示
2010-7-25 09:56
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
之前自己OD跟,无论怎么根,带入的变量都不是16进制的

重启一次机器后居然好了,无语
2010-7-25 16:19
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
5
VC有着功能么?
2010-7-26 10:51
0
游客
登录 | 注册 方可回帖
返回
//