VS 2010標準出力情報をoutputに出力


マイクロソフトのVisual Studio開発環境(VS 2010など)でC++のConsole Applicationを開発するプロジェクトで、標準出力情報(std::cout、printfなど)はコンソールに出力される(つまり伝説の黒い窓).多くの人はこの黒いウィンドウが好きではありません.特にEclipseのようなIDEに慣れた同志は、JavaからC++に移行するプログラマーのように、出力情報をVSに統合したいと思っています.このようなニーズを実現する方法としては、VSのoutputに出力情報を印刷する方法があり、以下、VS 2010を例に説明する.
プロジェクトを選択し、右クリックproperty->Configuration Properties->Build Events->Post-Buld Event、右ウィンドウのCommand Lineバーにコンパイルしたexeファイルのパスを入力します.私のC++TestプロジェクトがE:C++WorkspaceVS 2010C++Testの下にある場合、Command Line欄にE:C++WorkspaceVS 2010C++TestDebugC++Testと入力します.exe.もちろん、buildの出力経路が変更される可能性があります.Buildの出力経路が変更された後、Command Lineの値を変更しないように、$(OutDir)$(ProjectName)を入力します.exe,およびE:C++WorkspaceVS 2010C++TestDebugC++Test.exeの役割は同じです.
これによりbuild終了後にこのexeプログラムが自動的に実行され、VSのoutputウィンドウにプログラム出力情報が印刷され、F 5を押してrunを実行する必要がなくなります.
 
私のプログラムのように:
#include <iostream>
using namespace std;

int main()
{
	cout << "Hello World!" << endl;
	printf("Print Hello World!");
	return 0;
}

outputウィンドウの出力情報:
1>------ Build started: Project: C++Test, Configuration: Debug Win32 ------
1>Build started 2015/3/7 18:35:27.
1>InitializeBuildStatus:
1>  Creating "Debug\C++Test.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  All outputs are up-to-date.
1>  All outputs are up-to-date.
1>ManifestResourceCompile:
1>  All outputs are up-to-date.
1>Manifest:
1>  All outputs are up-to-date.
1>LinkEmbedManifest:
1>  All outputs are up-to-date.
1>  C++Test.vcxproj -> E:\C++Workspace\VS2010\C++Test\Debug\C++Test.exe
1>CopyFilesToOutputDirectory:
1>  Copying file from "Debug\C++Test.pdb" to "E:\C++Workspace\VS2010\C++Test\Debug\C++Test.pdb".
1>PostBuildEvent:
1>  Hello World!
1>  Print Hello World!
1>FinalizeBuildStatus:
1>  Deleting file "Debug\C++Test.unsuccessfulbuild".
1>  Touching "Debug\C++Test.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:01.42
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========