CreateProcess参数传递细节

来源:互联网 发布:linux cp -r 编辑:程序博客网 时间:2024/06/07 09:44

背景:用CreateProcess调用win32控制台程序,参数传递win32程序接受不到。


代码:

CString strFullPath = _T(“d:\\test.exe”);
CString strCmdLine = _T(“param”);

STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi;
BOOL bRunProgram = CreateProcess(strFullPath.GetBuffer(), strCmdLine.GetBuffer(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);


strFullPath.ReleaseBuffer();
strCmdLine.ReleaseBuffer();


if (bRunProgram)

{
    // 等待程序结束
    WaitForSingleObject(pi.hProcess,INFINITE);
    CloseHandle(pi.hProcess);        
}

错误原因:参数中少空格。

修改为

CString strCmdLine = _T("");

strCmdLine += _T(" ");//此处要添加空格

strCmdLine += _T(“ param”);


参数传递成功。

原创粉丝点击