|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- CONST TCHAR path[] = _T("C:\\Users\\Administrator\\Desktop\\test.exe");
- LPPROCESS_INFORMATION info = NULL;
- STARTUPINFO si = { sizeof(si) };
- BOOL b= CreateProcess(path,NULL,NULL,NULL, FALSE,NULL,NULL,NULL, &si, info);//创建一个新的进程和它的主线程
- DWORD error = GetLastError();
- CString str;
- str.Format(_T("b=%d\r\n"),b);
- ::OutputDebugString(str);
- str.Format(_T("error=%d\r\n"), error);
- ::OutputDebugString(str);
复制代码
错误信息:参数错误 错在哪儿 ??
您的代码有几个问题,导致了“参数错误”。以下是修复这些问题的方法:
1. `LPPROCESS_INFORMATION info` 应该定义为 `PROCESS_INFORMATION` 结构体,而不是指针。
2. 使用 `&` 运算符在调用 `CreateProcess()` 时传递 `info` 的地址。
修复这些问题后,代码如下:
- #include <windows.h>
- #include <tchar.h>
- #include <atlstr.h>
- int _tmain() {
- CONST TCHAR path[] = _T("C:\\Users\\Administrator\\Desktop\\test.exe");
- PROCESS_INFORMATION info; // 修改为定义结构体而不是指针
- STARTUPINFO si = { sizeof(si) };
- BOOL b = CreateProcess(path, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &info); // 使用 & 运算符传递 info 的地址
- DWORD error = GetLastError();
- CString str;
- str.Format(_T("b=%d\r\n"), b);
- ::OutputDebugString(str);
- str.Format(_T("error=%d\r\n"), error);
- ::OutputDebugString(str);
- return 0;
- }
复制代码
这个修改后的代码应该可以正常运行,并且没有参数错误。请注意,如果您在运行时遇到权限问题,您可能需要以管理员身份运行程序。
|
|