你好我试图暂停一个帖子,但由于某种原因,它一直在崩溃游戏。 这是我得到的
void Test(){
SuspendThread((PVOID)0x83593C24);//0x83593C24 The offset from the game
Scr_AddInt(1);
ResumeThread((PVOID)0x83593C24);
}
基本上我试图暂停而不是调用Add Int而不是恢复它
答案 0 :(得分:0)
您需要使用创建线程时返回的线程句柄。请参阅CreateThread
的文档; SuspendThread
;和ResumeThread
。
特别是,来自CreateThread
的文档:
如果函数成功,则返回值是新线程的句柄。如果函数失败,则返回值为NULL。
示例:
HANDLE thread_handle = CreateThread(/*args*/); // hold on to this value (and check for failure)
if (thread_handle == NULL)
{
// handle creation error
}
DWORD suspend_retval = SuspendThread(thread_handle);
if (suspend_retval == static_cast<DWORD>(-1))
{
// handle suspend error
}
Scr_AddInt(1); // original work
DWORD resume_retval = ResumeThread(thread_handle);
if (resume_retval == static_cast<DWORD>(-1))
{
// handle resume error
}
创建一个封装线程创建,暂停,恢复和终止的包装类可能是值得的。此类可以在内部执行所有错误检查,并在适当时抛出异常。