Process.start() を使用して C# フォームから C++ exe を実行します
-
22-09-2019 - |
質問
以前のすべての C++ プログラムを 1 つの中央プログラムから使用できるようにする C# フォーム アプリを作成しようとしています。
exeファイルを開くことができます Process.Start()
, ただし、コードは正しくコンパイルされません。
コード例:
Process.Start("C:\\\Documents and Settings\\\dan\\\Desktop\\\test.exe");
これによりコンソールが表示され、コンソールが実行されているかのように動作しますが、通常 C++ エディターからコンパイルするときのようには実行されません。ありますか startinfo
C++ プログラムかそれに沿ったものであることを示すために設定する必要がある変数は何ですか?
また、次を使用して C++ プログラムを実行する方法はありますか? process.start
これにより、コマンドラインから変数を渡すことができます。 argc
そして argv
?
ありがとう
解決
Process.Start を以前の方法で使用する場合と、Process.Start を使用する場合の違いはいくつかだけです。プログラムを直接実行する場合。どちらも次のように対処できます プロセス開始情報.
- の 作業ディレクトリ 同じではありません。同じ動作を得るには、これを実行可能ファイルを含むパスに設定します。
- セット シェル実行を使用する true に設定すると、プロセスの実行に Windows シェルが使用されます。
コマンドライン引数の追加については、次のようになります。あなたはそれを行うことができます ProcessStartInfo.Arguments. 。ただし、C++ アプリケーションであるため、これは必要ありません。
他のヒント
コマンドライン引数を追加するには:
Process process = new Process();
process.StartInfo.FileName = "C:\\Documents and Settings\\dan\\Desktop\\test.exe";
process.StartInfo.Arguments = ""; // Put your arguments here
process.Start();
、それはどのような言語それがで書かれていてはいけません。
プログラムの引数については、あなたがProcessStartInfoクラスを見てみる必要がある、とProcess.Startのオーバーライド()を使用している:<のhref = "http://msdn.microsoft.com/en-私たち/ライブラリ/ 0w4h05yb.aspx」のrel = "nofollowをnoreferrer"> Process.Start(ProcessStartInfo)の
私は、Pythonで同様の問題に直面したあなたは、出力VERBOSE期待していますか?
私の場合は、出力バッファがいっぱいだので、実行が停止しました。