c# - 为什么 ReadProcessMemory 总是返回 false?
问题描述
不知道为什么,但对于某些 ReadProcessMemory 总是返回 false。始终像这样导入它:
[DefaultDllImportSearchPaths(Kernel32.Path)]
[DllImport(Kernel32.Dll)]
private static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [Out] byte[] lpBuffer, int nSize, IntPtr lpNumberOfBytesRead);
下面是运行结果ReadProcessMemory(IntPtr HandleWithAllAccess, IntPtr ProcessBaseAddress, byte[] BufferSizeOf500, int TheSize500, IntPtr.Zero);
https://preview.ibb.co/eK8189/Screenshot_890.png
Note: just so people don't start asking unrelated questions, Kernel32 is a class with the dll name and the path where to find it
解决方案
读取操作进入进程的不可访问区域,这就是它返回 false 的原因。感谢 Jeroen Mostert 链接文档,SetLastError
从现在开始我将设置为 true。
推荐阅读
- c++ - static_cast
在运行时 - css - 是否可以将 calc() 函数用于绝对定位元素?
- twitter - 苍鹭服务启动前无法控制现有拓扑
- c# - 如何在从 Angular 调用 Api 到 .NET-core 之前检查 JWT 令牌过期
- python - 将.pb模型转换为.tflite时如何通过通道设置不同的平均值和标准值
- android - WindowInsets 与 InputMethodManager !在android中显示和隐藏软键的正确方法
- php - 在 PHP 中压缩时 PDF 数字签名在 Ghostscript 中不起作用
- typescript - 如何在 TypeScript 中实现声明类的构造函数?
- amazon-web-services - 在 linux 容器上使用 powershell 作为 buildspec 的一部分
- amazon-web-services - 任务数、任务内存和任务 CPU 有什么作用(AWS ECS)