1

Visual Studio 2010 を使用して、C++ でコーディングします。

そこで、ソリューションと 2 つのプロジェクトを用意しました。プロジェクト 1 は、プログラムの GUI として機能する Windows アプリケーションであり、プロジェクト 2 は、いくつかの外部アプリケーションと対話することを目的としたコンソール アプリケーションです。

プロジェクト 1 に、押されたときにプロジェクト 2 を実行するボタンを作成したいと考えています。これを行う最も簡単な方法は何ですか? 「system("Project2.exe");」を使用して、コマンド プロンプトから Project 2 を実行することだけを考えています。一種のアプローチですが、外部の既存の実行可能ファイルの代わりにプロジェクトの実行可能ファイルを参照する方法がわかりません。

私は一般的にC++とVisual Studioにかなり慣れていないので、ここで明らかなことを見逃している可能性があります。ご協力いただきありがとうございます!

4

4 に答える 4

1

プロジェクト 2 をクラス ライブラリとしてビルドするように変更して、その dll をプロジェクト 1 で使用できますか?

于 2012-10-19T14:33:32.697 に答える
0

Mike Corcoran が述べた以外に、外部プログラムをシステムの PATH 変数に入れてsystem(const char *)関数で実行すると、それを使用することもできます。

このように運転するのはまずまずですが、正しい方法ではありません。たとえば、プログラムが対話型の場合、すぐに失敗するか、UB (未定義の動作) が発生します。これを回避するには、プログラムのロジックを入力/出力から分離し、コードでそれを回避します。

一部の成功した Linux プログラムは、コンソール アプリケーションの出力を取得し、それを GUI に表示することに成功しています (内部で操作する必要があります)。Visual Studio でさえこれを行います。「成功したビルド」などのアプリケーションをコンパイルするときに表示される出力は、コマンド ラインで実行され、その出力がリダイレクトされます。

幸運を。

于 2012-10-19T14:39:28.750 に答える
0

マイクが言ったことはより良い方法だと思いますが、ここで同じ問題に遭遇すると思います. 「プロジェクトの依存関係」を定義する必要があります。プロジェクト 1 を右クリック -> プロジェクトの依存関係 -> プロジェクト 2 を選択します。これで、プロジェクト 2 がプロジェクト 1 の前にコンパイルされます。

コンパイル後にファイルを移動する場合は、プロパティでビルド後のイベントを定義できます。(構成プロパティ -> ビルド イベント -> ビルド後イベント) たとえば、次のようなコマンドを定義することで、ファイルをコピーできます。xcopy /y "$(ProjectDir)Release/myexe.exe" "Some path"

于 2012-10-19T14:36:07.470 に答える