现在的位置: 首页 > 综合 > 正文

CreateProcess参数传递细节

2017年12月11日 ⁄ 综合 ⁄ 共 538字 ⁄ 字号 评论关闭

背景:用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”);

参数传递成功。

抱歉!评论已关闭.