Visual Studioでのフォームアプリケーションは標準では、コンソールにが表示されない。
それゆえデバッグにprintfやstd::coutが使えないのが難点。
そこで、コンソール(コマンドプロンプト)を開きそこへ標準出力(printfやstd::cout)できるようにした。
以下がフォームアプリケーションのメイン プロジェクト ファイルに書き加えた例。
赤字部分がその簡易マクロと追加した行。
// MyProgram.cpp : メイン プロジェクト ファイルです。
#include "stdafx.h"
#include "Form1.h"
using namespace MyProgram
[STAThreadAttribute]
int main(array$lt;System::String ^> ^args){
// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// メイン ウィンドウを作成して、実行します
Application::Run(gcnew Form1());
}
#include "stdafx.h"
#include "Form1.h"
#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <windows.h>
#include <iostream>
#define OPENCONSOLE(fp) { if (!::AttachConsole(ATTACH_PARENT_PROCESS)) ::AllocConsole(); freopen_s(&fp, "CON", "w", stdout);}
#define CLOSECONSOLE(fp) {fclose(fp); ::FreeConsole();}
#define CLOSECONSOLE(fp) {fclose(fp); ::FreeConsole();}
using namespace MyProgram
[STAThreadAttribute]
int main(array$lt;System::String ^> ^args){
FILE *fp;
OPENCONSOLE(fp);
OPENCONSOLE(fp);
// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// メイン ウィンドウを作成して、実行します
Application::Run(gcnew Form1());
std::cout<<"これでコンソールに表示される"<<std::endl;
CLOSECONSOLE(fp);
return 0;CLOSECONSOLE(fp);
}
0 件のコメント:
コメントを投稿