我试图在我的子进程上调用TerminateProcess(仅作为一个安全机制,当孩子陷入死锁或激烈的事情时),但我得到ERROR_INVALID_HANDLER .

我试过玩过程设置,但没有帮助 . 如果我在CreateProcess()之后立即调用TerminateProcess(),则调用确实有效 .

BOOL ret;
HANDLE hProcess;

hProcess = OpenProcess(PROCESS_TERMINATE,
                        FALSE,
                        pid);

if (hProcess = NULL) {
    debug("Error: OpenProcess failed: %d", GetLastError());
    return -1;
}

ret = TerminateProcess(hProcess, 1);
CloseHandle(hProcess);

if (!ret) {
    debug("Error: TerminateProcess failed: %d", GetLastError());
    return -1;
}
else return 0;

我收到错误6,INVALID_HANDLE_EXCEPTION . 我仔细检查了并且pid是正确的(它与任务管理器中的匹配) . 唯一可能的错误可能是我如何获得OpenProcess()的句柄 . 我试图使用PROCESS_ALL_ACCESS,但这不起作用 .

有谁知道有什么可能是错的吗?

编辑:拍出这样一个愚蠢的错误!我给hProcess分配了NULL('='而不是'==')

对不起,帖子!