CreateProcess诡异的参数问题

由于要写GTest的UI测试,要创建进程并向其发送消息。但是CreateProcess这个函数却一开始老是失败。

TEST(Clean_Up_Tests,Time_Table_Dlg )
{
STARTUPINFO siStartInfo;
PROCESS_INFORMATION piProcInfo;
 // Set up members of STARTUPINFO structure.
 siStartInfo.cb = sizeof(STARTUPINFO);
 siStartInfo.lpReserved = NULL;
 siStartInfo.lpReserved2 = NULL;
 siStartInfo.cbReserved2 = 0;
 siStartInfo.lpDesktop = NULL;
 siStartInfo.dwFlags = 0;
 
 //the cmdLine
 TCHAR szCmdLine[_MAX_PATH] = _T("Planet.exe");
 
 int nCreateResult =
 CreateProcess(NULL, szCmdLine,
 NULL, NULL,FALSE, 0, NULL, NULL,  &siStartInfo, &piProcInfo);
//......
}

查了各种资料,实在是找不到原因。百般无聊之下,我把STARTUPINFO 和 PROCESS_INFORMATION这两个结构体的定义放在TEST()函数外面时作为一个全局变量时,情况发生了转机。难道这两个变量的作用域也会影响到函数的执行过程?可是查遍了各种关于这两个变量的用法说明,也没有哪里提到这一点.把这个现象贴出来,如果能够帮助到也正碰到这个问题的人,就幸甚了.

发表评论

电子邮件地址不会被公开。 必填项已用*标注