我在一个工程里创建一个进程, 进程创建成功,创建函数CreateProcess返回TRUE,但是我创建的这个进程vega.exe在任务管理器中却看不到,这到底是创建成功了还是没创建成功!我单独运行这个vega.exe程序是可以运行的,说明vega.exe程序没有问题,但是用创建进程的方法却启动不了,这是为什么呢?希望大家帮帮我啊! void CMainDlg::OnBtnStart()
{
char ss[400];
char ff[500];
CString s;
HWND hWnd;
m_edit1.GetWindowText(s1);
strcpy(ss, s.GetBuffer(s.GetLength()));
s1.ReleaseBuffer(); sprintf(ff,"H:\\视景\\winmain1\\vega\\Debug\\vega.exe %s",ss);
STARTUPINFO sui;
PROCESS_INFORMATION pi;
ZeroMemory(&sui, sizeof(STARTUPINFO));
sui.cb = sizeof(STARTUPINFO);
if(!CreateProcess(_T("H:\\视景\\winmain1\\vega\\Debug\\vega.exe"),
_T(ff), NULL, NULL, FALSE, 0, NULL, NULL, &sui, &pi))
{
return;
}
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
{
char ss[400];
char ff[500];
CString s;
HWND hWnd;
m_edit1.GetWindowText(s1);
strcpy(ss, s.GetBuffer(s.GetLength()));
s1.ReleaseBuffer(); sprintf(ff,"H:\\视景\\winmain1\\vega\\Debug\\vega.exe %s",ss);
STARTUPINFO sui;
PROCESS_INFORMATION pi;
ZeroMemory(&sui, sizeof(STARTUPINFO));
sui.cb = sizeof(STARTUPINFO);
if(!CreateProcess(_T("H:\\视景\\winmain1\\vega\\Debug\\vega.exe"),
_T(ff), NULL, NULL, FALSE, 0, NULL, NULL, &sui, &pi))
{
return;
}
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
_T(ff), NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi))
第六个参数你设为了NULL,当然看不到,只是寄生在它的父进程中,你必须得创建一个新的控制台!
vega.exe 这个程序正常点击的话不会一闪就没了,这个是视景程序,会正常运行的!
CreateProcess(NULL, ff, NULL, NULL, FALSE, 0, NULL, NULL, &sui, &pi)
_T(ff)这个写法不对,在Unicode环境下会被替换为Lff,编译会出错