私は、最終的に同じコンピューター上にある別の既存の .exe を起動する必要がある Windows 用のプログラムを作成しています。複数のパラメーターをこの .exe ファイルに渡します。実際のコマンドとパラメーターを読み取ってコマンドを構築していますが、同じ結果でハードコーディングも試みました。ハードコーディングされたバージョンは次のとおりです(same.exeを使用する古いCプログラムからこれを選択しました):
system("c://IQapture//dmon2_6_IHD -p2 c://IQapture//mon_table_101_Tx8.txt 11 0 0");
そのため、元のプログラム内でint _cdecl main(int argc, char**argv)
このシステムの使用は機能します。C++ クラス メソッド内の C++ プログラムでは、コマンドを発行すると正しいプログラムが起動しますが、エラーが発生したことを示すエラー ダイアログがすぐに表示されます。exeをコンソールに起動するために使用されるシステム文字列をエコーしました。失敗した直後に、エコーされたのと同じ行をコピーして貼り付け、今度は exe がエラーなしで実行されます。これは繰り返し可能です。タイミング関連の場合は、システム コマンドを発行する前に 10 秒の遅延を追加しようとしましたが、問題はありませんでした。さらに、元の古いプログラムは遅延を必要としません。これは、文字列が正しく、ターゲット プログラムが動作することを意味します。どういうわけか、system() の呼び出しは、直接のコマンド ラインの呼び出しとは異なります。プログラムは正常にコンパイルおよびビルドされます。Visual Studio 2010 を使用しています。
system() の呼び出しをコマンド ラインの呼び出しのように機能させる方法についてアイデアを持っている人はいますか?