Windowsモードでは、Consoleモードと違って、printfが発行できないが。 – プログラミング – Home

Windowsモードでは、Consol...
 
通知
すべてクリア

Windowsモードでは、Consoleモードと違って、printfが発行できないが。


RISK
 RISK
(@RISK)
ゲスト
結合: 23年前
投稿: 13
Topic starter  

VISUAL STDIOのC/C++でも、Borland C++でも、
CONSOLEで走るモード(mainを使うもの)と、
WINDOWSで走るモード(Winmainを使うもの)
があると思います。
デバッグモードに入らないまでも、
前者のCONSOLEで走るモードでは、
printfをところどころに置けば、
その、所々の変数の値は、見えます。
しかし、後者のWINDOWSのモードでは、
printfで、変数表示させようにも、
見えません。
デバッグモードに入らずとも、
これに変わる、手軽な、WINDOWSモードでの、
変数(int型、double型、char型ともに)
を、実行中に表示させる機能はないのでしょうか?
いちいち、リソースを作って、メニュー表示させたのでは、
プログラムは、OKボタンを押さないと停まってしまうし、
プログラムは重くなるし。。。


引用解決済
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

>しかし、後者のWINDOWSのモードでは、
>printfで、変数表示させようにも、
>見えません。

どこに表示するんでしょう?
ひょじしているウィンドウの上に、コンソールのprintf()のように「無差別に」表示する
のが見易いでしょうか?
最小化していたり、非表示にしていたりした場合は問答無用でデスクトップに描画してウ
イルスっぽく振る舞うんでしょうか。

>デバッグモードに入らずとも、
>これに変わる、手軽な、WINDOWSモードでの、
>変数(int型、double型、char型ともに)
>を、実行中に表示させる機能はないのでしょうか?

OutputDebugString()辺りでしょうかねぇ。
printf()ほど使い勝手がいいワケではありませんが。
# 書式指定して~とかはできませんしね。
TRACE()ってマクロ使った方がたぶん楽でしょう。

OutputDebugString()の出力を受けられるソフトもそれなりにありますし。
# VSなら「出力」ウィンドウに表示されるでしょう。

ちなみに、Windowアプリでもコンソールを自前で設定すればprintf()は使えたかと。
やったことはありませんけど。


返信引用
Ismaell.
 Ismaell.
(@Ismaell.)
ゲスト
結合: 15年前
投稿: 7
 

デバッグモードでTRACE()はどうですか。


返信引用
AR2
 AR2
(@ar2)
Estimable Member
結合: 5年前
投稿: 110
 

もう出てきたもの以外で良くやるのは
・処理を止めて確認したい場合は、MessageBox()
・処理を止めたくない場合は、適当なファイルにログとして出力する
ですかね

ログ出力も定型的な処理なので後で使いまわせるようにしてますが、専用のログ吐きライ
ブラリを使っても良いかもしれません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました