ウィンドウ起動型アプリケーションのコンソール出力先


ゆーこ  2004-09-18 00:54:36  No: 54520

はじめて投稿します。
知人の作成したアプリケーションのソースを見ながらC++を
勉強し始めた者です。

実は、そのアプリケーション(ウィンドウ起動型)の中で
   Console::Write(S"メッセージ: "); ……
というようにコンソール出力しているのですが、
exeを実行しても出力されたメッセージを見つけられません。

ウィンドウ起動型アプリケーションでのコンソール出力先は
どこになるのでしょうか?  勝手にコマンドプロンプトの
ような画面が開いて、そこに出力されるはずなのでしょうか??
この問題を解決できそうなキーワード(コンソール出力先を
指定するメソッドなど)があれば、教えていただければ幸いです。

作成者本人に質問するべきなのでしょうが、現在連絡が取れない
状況のため、こちらに書込みさせていただきました。
環境は Windows2000+visual studio.NET 2003 です。
よろしくお願い致します。


アポロ  2004-12-02 22:55:53  No: 54521

参考になるかわかりませんが。
VisualC++6.0にて
メニューバーから[プロジェクト]→[設定](ダイアログ起動)→[デバック](タブ)
の順に辿り、[プログラム引数]エディットボックスに[>debug.txt]と書きます。
そしてプログラム中でprintf関数を利用すればプログラム終了時にdebug.txtというファイルが作成されそこにコンソール出力されます。


シャノン  2004-12-04 02:41:30  No: 54522

ウィンドウアプリの標準出力先は NULL、つまり出力したメッセージは捨てられるという話を聞いたことがあります。
コンソール出力先をファイルにしたいのなら、ファイルを開いて SetStdHandle 関数を使えば出来ると思います。
ウィンドウアプリでコンソールウィンドウを表示させたいのなら、AllocConsole 関数が使えると思います。


Ban  2004-12-04 04:42:06  No: 54523

> ウィンドウアプリの標準出力先は NULL、
# MS-DOS 時代から "NUL" という名前で予約されてますね。

# 用例:  c:\> foo.exe > NUL

# AUX(外部出力)とか CON(コンソール)とかと一緒で、
# これらの名前のファイルは今でも作成できない。
# (プログラム等で無理に作ると今度は消せなくなる...)


なーめ  2004-12-06 00:02:30  No: 54524

時々 '\0' のことを NULL と書く人がいますが、
やめてもらいたいと思っています。
char * p = NULL;
と、
*p = NULL;
とは意味が違います。
通常、p = NULL; のコーディングミスで出てくる表記なのですが、
ミスパターンらしき表記が、実は
*p = '\0'; 
で正しいという、「だまし」なコードだったりします。
他人のコードをデバッグすると結構あるんですよ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加