gpt4 book ai didi

c++ - CreateProcess 失败,错误为 0

转载 作者:行者123 更新时间:2023-11-27 23:54:37 24 4
gpt4 key购买 nike

我想开始一个流程。为此,我像这样调用了 CreateProcess 方法:

wchar_t *path = (wchar_t*) malloc(sizeof(wchar_t) * 500);
const char* const_path = "C:/Windows/notepad.exe";
for (int i = 0; i < strlen(const_path); i++)
{
path[i] = const_path[i];
}

PROCESS_INFORMATION pi;
STARTUPINFO si;

ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));

if (!CreateProcess(NULL,
path,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
{
std::stringstream s;
s << "Could not start - Code " << GetLastError();
ui.processStateLabel->setText(s.str().c_str());
return;
}
WaitForSingleObject(pi.hProcess, INFINITE);

CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

问题是:它给我“无法启动 - 代码 0”,这是没有意义的,因为错误代码 0 是成功的操作,显然(没有打开窗口)操作不成功。我需要做什么才能让它正常工作?

最佳答案

如您所知,字符串并未终止。您可能还想引用路径。

您应该在创建 std::stringstream 对象之前调用 GetLastError,因为您不知道构造函数在幕后做了什么,这有望提供更好的错误代码。

关于c++ - CreateProcess 失败,错误为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43526381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com