2016-11-15 5 views
-3

私はcreateProcessをC言語で使用して、jarを実行するコマンドプロンプトを開きます。私はすべての不具合を理解しましたが、デバッグのために何らかの形でコンソールがただ点滅してすぐに消えてしまったようなものを追加したいと思っています。CのCreateProcessがコンソールを非常に速く閉じます

私が探しているのは、ジャーが実行され、コマンドウィンドウが終了する前にボタンが押されるのを待つことです。

これはデバッグにのみ使用されます。コンソールウィンドウがハングしたり、すべての行を削除したりしないように、削除する前に削除します。

if (!CreateProcess(NULL, // No module name (use command line) 
     "java -jar testfile.jar",  // 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 
     ){ 
      MessageBox(0, "test jar passed", "jar executed", 1); 
      return 1; 
     } 
    else { 
     printf("create process call to jar was sucessful"); 
     MessageBox(0,"jar failed", "Error Test", 1); 
     return 0; 
    } 
} 

私はIDEを使用していませんが、別のシステムにインストールするので、DLLを作成する必要があります。 IDEの機能を使用してコマンドプロンプトを停止する

+2

どのようにコマンドプロンプトを正確に開きますか? –

+0

createProcessをクリックするとチェックアウトできます – Praveen

+3

どのように**あなた**使用していますか? –

答えて

1

コンソールの点滅を停止するには、getch()を使用できます。

getch()ユーザが文字を入力するのを待ちます。 getch()がない場合は、getche(),getchar()などの他の機能を使用できます。しかし、getch()とは異なり、改行が追加されます。

私はそれがあなたの問題を解決すると思います。

+0

私はこれを試してみる – Praveen

+0

'getch'は' conio'のMSVC関数です。標準の 'getchar'を使うことができます。ちょうど' Enter'を打ってプログラムの実行を完了させます。 *余分な*改行はありません。 –

+0

@Skrewそれはうまく動かず、終了しました – Praveen

関連する問題