我是c ++的新手,并尝试使用调试apis,但我甚至无法启动。因为我无法通过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!");
}
答案 0 :(得分:4)
sInfo
和pInfo
未指向有效内存(错误代码87
表示参数不正确。)。改为:
STARTUPINFO sInfo = { sizeof(sInfo };
TCHAR desktop[] = TEXT("winsta0\\default");
sInfo.lpDesktop = desktop;
PROCESS_INFORMATION pInfo;
并将对象的地址传递给CreateProcess()
(即&sInfo, &pInfo
)。