用指针c#指向某个地址

时间:2016-02-23 03:34:32

标签: c# c pointers

我有一个打开的c程序,地址中存储了随机var a = 20。让我们说1000.我希望我的c#程序能够读取这个地址(1000)的值。所以在我的c#程序中显示值20。我已经有了地址,但我不知道怎么看这个地址值,有什么帮助吗?

int *ptr = (int *) 0x67a9;
*ptr = 0xaa55;

我发现这个c代码认为它会有所帮助。

我正在使用Visual Studio 2015。

1 个答案:

答案 0 :(得分:2)

所以你希望你的C在内存地址1000中存储一个值,你希望你的C#程序能够读取内存地址1000并看到相同的值吗?

不幸的是(对你而言)它没有那样工作 - 每个exe都有它自己的地址空间,所以每个地址1000都会映射到不同的物理地址,你不应该这样做。在那个级别下来。

您可以通过几种进程间通信(IPC)方法来实现您想要的(如共享内存)

编辑 David Heffernan正确指出注释中的ReadProcessMemory允许您将一个内存区域从一个进程映射到另一个进程。我必须承认我并不知道!还有一个问题是你不能只使用内存地址1000 - 你不得不从一边到另一边得到一个有效的地址,所以我不确定它对一般情况有多大用处。 这可能会为您提供更多提示:sharing memory between two applications