こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラムの連続実行(VC++ 2010)

こんにちは。

現在、「Visual C++ 2010 Express」を使って、コンソールアプリケーションの開発について勉強しています。
どうしてもわからないことが出てきたので、質問させて下さい。

今、Sという名前のソリューションに、P1とP2という、2つのプロジェクトが含まれているとします。
P1をビルドして作成されたP1.exeは、1つのファイルに、適当なデータを出力します。
P2をビルドして作成されたP2.exeは、そのファイルの内容を読み取って、標準出力に出力します。

Visual C++ 2010 Expressでは、[Ctrl]+[F5]で、作成されたexeファイルを実行できるのですが、
どうやら、スタートアッププロジェクトのexeファイルしか実行されないようなんです。
[Ctrl]+[F5]によって、P1.exeが実行された後に、P2.exeが実行されるようにするには、どうすればよいのでしょうか?
プロジェクトやソリューションのプロパティをいじってみたのですが、
どうも上手くいかなかったので、質問させて頂きました。

一応、P1とP2のソースファイルの内容を、以下に載せておきます。

・P1.cpp
-----------------------------------------------
int main(int argc, char *argv[])
{
char str[1000];

//出力用にファイルをオープンする。
ofstream fw("file.txt");
if(!fw){
cout<<"「file.txt」が開けない!\n";
exit(1);
}

//ファイルにデータを書き込む。
cout<<"出力ファイルに書き込む文字列を入力せよ。"<<endl;
cin>>str;
fw<<str<<endl;
fw<<100<<endl;
fw<<200<<endl;

fw.close();

return 0;
}
-----------------------------------------------



・P2.cpp
-----------------------------------------------
int main(int argc, char *argv[])
{
char ch;

//読み取り用にファイルをオープンする。
ifstream fr("file.txt");
if(!fr){
cout<<"「file.txt」が開けない!\n";
exit(1);
}

cout<<"file.txtの内容を読み込み、以下に表示する。\n";

while( fr.get(ch) ){
cout<<ch;
}

return 0;
}
-----------------------------------------------

ちなみに、各プロジェクトの「作業ディレクトリ」は、
共通のディレクトリに設定しているので、
「file.txt」は、そこで入出力されるようになっています。

以上、よろしくお願い致します。

投稿日時 - 2012-11-19 11:51:44

QNo.7805262

困ってます

質問者が選んだベストアンサー

現在2つのプロジェクトにはそれぞれ2つのソースプログラムがあります。P1.cppとP2.cppです。それを若干作り変えます。

例えばP1_sub.cppという別のソースを作成し、その中にP1_sub()という関数を作成しP1.cppのmain()関数内の内容を引越しさせます。そしてP1.cppのmain関数からP1_sub関数を呼び出すようにします。
P2に関しても同様です。

新たにP3というプロジェクトを作成してmain関数からP1_sub()関数とP2_sub関数を呼び出すようにします。P3.exeを実行させればいいのではないでしょうか ?

投稿日時 - 2012-11-21 09:33:33

お礼

御回答ありがとうございます。

確かに、ご提案頂いた方法で、今回のプログラムはきちんと動作します。
ですが、今回例に出したプログラムは、あくまで例であって、
P1とP2の実行ファイルを、[Ctrl]+[F5]で、
順番に実行できるように設定したかったんです。

投稿日時 - 2012-11-21 17:22:51

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問