在c ++中同时运行具有不同参数的相同exe

时间:2014-05-18 07:55:12

标签: c++ windows winapi batch-file

有没有人有想法在c ++中同时打开具有不同参数的同一个exe文件 在过去,我总是在windows中打开多个表示同时运行exe的行,
但是,它似乎不是解决它的最佳方法。因此,我尝试在c ++中实现它,以便同时自动运行多个处理 我试过了this,但它仍然无法正常工作.... 我的问题:
例如运行
1. a.exe -dir D:-num 1000
2. a.exe -dir D:-num 1500
3. a.exe -dir D:-num 2500
同时在c ++中。

1 个答案:

答案 0 :(得分:0)

(由OP编辑回答。见Question with no answers, but issue solved in the comments (or extended in chat)

OPs解决方案是:

  

溶胶:

std::ostringstream trainsamplesCmd[2];
trainsamplesCmd[0] << "a.exe -data cascade/1 -vec vec/test.vec -bg neg.txt -numPos 1000 -numNeg 1000 -w 30 -h 14";
trainsamplesCmd[1] << "a.exe -data cascade/2 -vec vec/test.vec -bg neg.txt -numPos 1500 -numNeg 1000 -w 30 -h 14";
for(int i = 0; i < 2; i++) {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    if( !CreateProcess( NULL,   // No module name (use command line)
        const_cast<char *>(trainsamplesCmd[i].str().c_str()),        // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        0,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi )           // Pointer to PROCESS_INFORMATION structure
        ) 
    {
        printf( "CreateProcess failed (%d).\n", GetLastError() );
        system("pause");
        return 0;
    }
}