2017-01-24 10 views
0

助けてくれますか?私は.exeのファイルタイプを実行する必要があります。私は2つのtest1.txttest2.txtファイルを持っているし、それらのファイルに2 PATHes pr2.exe pr1.exe へとがあります。しかし、最初にtxtファイルに私は別のものでpr2.exepr1.exeがあり、pr1.exepr2.exeを実行します。例えばPATH C++を実行した後に.exeを実行してください

#include <iostream> 
#include <fstream> 
#include <process.h> 

using namespace std; 
int main(int argc, char *argv[]) { 

    cout << "argc = " << argc << endl; 
    for (int i = 0; i < argc; i++) { 
     cout << "Argument: " << i << " = " << argv[i] << endl; 
    } 

    if (argc != 2) { 
     cout << "Error" << endl; 
     exit(-1); 
    } 
    char ch; 
    ifstream infile; 
    infile.open(argv[1]); 
    if (!infile) { 
     cout << "errrrror: cant open a file" << argv[1]; 
     exit(-1); 
    } 
    while (infile) { 
     infile.get(ch); 
     cout << ch; 
    } 
    cout << endl; 
    system("pause"); 

    return 0; 
} 

:それはのようだ、私はtest1.txtのパスを書き、それがpr1.exepr2.exeの2 PATHesを出力します。

「C:\ユーザーはN \を\デスクトップ\プロセス\ 2D FILE.EXE」

は "C \ 2Dファイル\デバッグ:\ユーザーはN \デスクトップ\プロセスを\ \

デバッグ\第一FILE.EXE" \ 1ファイル

私はどのようにそれらを実行する必要がありますアドバイスできますか?

答えて

0

あなたが探していることはCreateProcess機能で、より多くの情報がmsdnで見つけることができます:

// start the program up 
    #include "windows.h" 

    std::wstring("pr1.exe"); 
    STARTUPINFO si;  
    PROCESS_INFORMATION pi; 

    ZeroMemory(&si, sizeof(si)); 
    si.cb = sizeof(si); 
    ZeroMemory(&pi, sizeof(pi)); 
    if(!CreateProcess(NULL, (LPWSTR)wstr.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) 
    { 
      //error 
    } 

    CloseHandle(pi.hProcess); 
    CloseHandle(pi.hThread); 

注:あなたがあなたのプログラムで任意のコマンドラインPARAMATERSを送信していない場合、あなたはまた、交換可能性第1引数と第2引数

+0

ビルドを手伝ってもらえますか? –

+1

あなたはそれをどのように構築するのを助けますか?そのコードは問題になります。 'windows.h'をインクルードするように編集しますが、これは本当に必要なものです –

関連する問題