最近在使用CreateProcess时 无法成功创建进程
参考https://blog.csdn.net/hany3000/article/details/34622701得知
在调用CreateProcess之前,把常量字符串复制到一个临时缓冲区
CreateProcess("C:\\Users\\test\\Desktop\\AsmDEMO.exe",NULL,NULL,NULL,NULL,NULL,NULL,NULL,&info,&pinfo);
改
为
1 2
| TCHAR szPath[] = TEXT("C:\\Users\\test\\Desktop\\AsmDEMO.exe"); CreateProcess(szPath,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&info,&pinfo);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <stdio.h> #include <Windows.h>
int main(int argc, char* argv[]) { STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi = {0}; si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = TRUE;
TCHAR szPath[] = TEXT("C:\\Users\\test\\Desktop\\AsmDEMO.exe");
BOOL bRet = CreateProcess(szPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); if (bRet) { CloseHandle(pi.hThread); CloseHandle(pi.hProcess); printf("新进程的ID号:%d\n", pi.dwProcessId); printf("新进程的主线程ID号:%d\n", pi.dwThreadId); } else { printf("ERROR"); } return 0;
}
|