今天用CreateProcess函数启动本目录下的一个.exe文件,每次一启动都出错
::CreateProcess(NULL, _T("XX.exe"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
在win7系统下一用这个函数,都会弹出XX.exe无法运行,问是否调试还是关闭和对话框。改启动系统的cmd.exe也不行。
多次尝试才知道原来第二个参数要以参数的形式传进去。即
TCHAR cmdLine[30]={_T("XX.exe")};
然后再调用
::CreateProcess(NULL, cmdLine,NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
才能正常启动子程序。