当我运行我的应用程序时,我收到以下错误:
未处理的类型' System.ComponentModel.Win32Exception' 发生在System.Windows.Forms.dll中 附加信息:只完成了ReadProcessMemory或WriteProcessMemory请求的一部分
这是崩溃的代码,在最后一行崩溃:
SHDXOverlay.ChildControls.Add(ctrlCrosshair);
SHDXOverlay.ChildControls.Add(ctrlRadar);
SHDXOverlay.ChildControls.Add(windowMenu);
SHDXOverlay.ChildControls.Add(windowGraphs);
SHDXOverlay.ChildControls.Add(windowSpectators);
SHDXOverlay.ChildControls.Add(windowBots);
SHDXOverlay.ChildControls.Add(cursor);
PrintInfo("> Running overlay");
Application.Run(SHDXOverlay);
答案 0 :(得分:0)
调用Application.Run()
时,叠加层的所有功能将开始执行。随后,它正在调用ReadProcessMemory()
。这些调用以字节为单位读取大小,如果您对ReadProcessMemory()
的调用无法读取此内存的一部分或全部,则会产生此错误。本质上说,ReadProcessMemory()失败了,您需要调查为什么最可能的罪魁祸首是不正确的指针或偏移量。
在每次调用WINAPI函数后检查Marshal.GetLastWin32Error并逐步执行代码,当您找到确切的行时,可以通过比较在作弊引擎中看到的内容来仔细检查指针/偏移以隔离您的问题。