|
VC2015中,WriteProcessMemory后,执行ResumeThread报错,在VC6下正常。
在VC2015中,当使用 `WriteProcessMemory` 函数后执行 `ResumeThread` 函数时遇到错误,而在VC6下却正常。这可能是由于VC2015引入了一些更严格的安全性措施导致的。以下是可能的解释和解决方法:
1. 安全性增强:VC2015引入了一些安全性增强措施,如数据执行保护(DEP)和地址空间布局随机化(ASLR)。这些措施可能会影响对其他进程的内存操作。确保在使用 `WriteProcessMemory` 函数时,对目标进程的内存操作是合法且受允许的。
2. 权限问题:执行 `WriteProcessMemory` 和 `ResumeThread` 函数需要足够的权限来操作其他进程的内存和线程。确保您的程序以管理员权限运行,以便具有足够的权限执行这些操作。
3. 错误处理:在VC2015中,调用 `WriteProcessMemory` 和 `ResumeThread` 函数后,检查返回值以确定是否发生错误。如果返回值为0或FALSE,可以使用 `GetLastError` 函数获取相关的错误代码,以便进一步排查问题。
请注意,上述解释是一般情况下的常见问题和解决方法,具体情况可能因操作系统、编译器设置或其他因素而有所不同。建议查阅相关文档和错误信息以获取更具体的诊断和解决方案。
经过第1,2步操作,问题解决,vc2015编译也正常和VC6一样运行了,此处记录一下,现将设置截图如下:
|
|