gpt4 book ai didi

C# AnyCPU 和读/写进程内存

转载 作者:行者123 更新时间:2023-11-30 17:17:19 40 4
gpt4 key购买 nike

我的 C# 程序是使用 AnyCPU 选项编译的,我正在使用 P/Invoke 以这种方式调用 native API:

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out UIntPtr lpNumberOfBytesWritten);

我的问题是,自从使用 anycpu 编译后,我的 C# 程序能否同时读取和写入 32 位和 64 位进程?或者会有问题吗?我问这个是因为我只有 32 位操作系统,所以我无法测试它。谢谢

最佳答案

在 32 位操作系统上,所有进程都是 32 位的,因此不会出现任何问题。在 64 位操作系统上,您的 AnyCPU 进程运行 64 位,唯一可能不匹配的是 32 位进程。但是用64位的指针存32位的地址是没有问题的。如果您尝试从 32 位进程读取/写入 64 位进程中的内存,您将被卡住。但由于您正在做相反的事情,所以没有问题。

关于C# AnyCPU 和读/写进程内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6564071/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com