c# - 用指针c#指向某个地址

标签 c# c pointers

我有一个开放的 C 程序,其地址中存储了一个随机 var a=20 。假设是 1000。我希望我的 C# 程序能够读取这个地址 (1000) 值。因此,在我的 C# 程序中,显示值 20。我已经有了该地址,但我不知道如何查看该地址值,有什么帮助吗?

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

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

我使用的是 Visual Studio 2015。

最佳答案

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

不幸的是(对你来说)它不是这样工作的 - 每个 exe 都有自己的地址空间,因此每个 exe 中的地址 1000 将映射到不同的物理地址,并且你不应该在该级别上乱搞.

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

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

关于c# - 用指针c#指向某个地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35568329/

相关文章:

c - struct { ... } 和 struct { union { struct { ... } } } 有什么区别?

oop - 为什么热插拔vtables不是流行的语言功能?

c# - 如何在 C# 中以优雅的方式测试对象是否为 null?

c# - 为什么 List IndexOf 允许超出范围的起始索引?

c - 如何从文件中读取const char *

c - 在 C 项目中包含 libcurl

c++ - 你如何在 C++ 中使用带指针的冒泡排序?

c - 通用 HashMap,不需要的输出 (C)

c# - 有人可以帮助我更好地在 WebForms 中保存图像吗?

c# - 在 XNA 中统一调整窗口大小