0

我是 C++ 的新手并尝试使用调试 API,但我什至无法开始。因为我无法通过 CreateProcess api 运行任何 exe。它不会给出任何编译错误,但会返回 false。你有什么建议吗?

LPCWSTR appName = LPCWSTR("C:\\TEST.EXE");
LPSTARTUPINFO sInfo = LPSTARTUPINFO();
LPPROCESS_INFORMATION pInfo = LPPROCESS_INFORMATION();

if (CreateProcess(appName,NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,sInfo,pInfo))
{
    printf("done!");
}
else
{
    printf("error!");
}
4

1 回答 1

4

sInfo并且pInfo没有指向有效的内存(并且错误代码87表示参数不正确。)。改成:

STARTUPINFO sInfo = { sizeof(sInfo };
TCHAR desktop[] = TEXT("winsta0\\default");
sInfo.lpDesktop = desktop;
PROCESS_INFORMATION pInfo;

并将对象的地址传递给CreateProcess()(即&sInfo, &pInfo)。

于 2012-11-30T17:09:07.527 回答