日期:2014-05-19  浏览次数:20807 次

假设已知一个内存地址:48j7fu3,请问在C#里面怎么用读内存的方法取出它的值?
如题,谢谢!

------解决方案--------------------
在32位windows下,访问4G的逻辑内存(理论上)可用如下:
char *p=address(0 <=address <=4G),但有些内存是不能访问的。具体可见《windows核心编程》。访问0x0400000(48j7fu3?有这样的地址?)处的内存可用如下代码:
int * ptr;
ptr = (int *)0x0400000;
printf( "0x0400000 : %04x\n ",*ptr);

不过这是C里的代码,在VC中可以嵌入汇编,但C#...

------解决方案--------------------
IntPtr ptr = (IntPtr)0x0400000;
int memory = Marshal.ReadInt32(ptr);
Console.WriteLine( "{0} ", memory);

你最好确定你的那个绝对地址是有效的...