デバック文を表示するには?

解決


pinpin  2004-12-16 01:32:21  No: 55696

現在コンソールアプリから
MFCのプログラムに変更しています。

コンソールアプリでは、
printf("test");
と書くとコマンドプロンプトにデバック文が表示されるのですが、
MFCのボックス(CListBoxなど)にこの表示をだしたいのですが、
うまくいきません。

そのprintfは別スレッド(_beginthreadを使ってます)でうごいています。
また、大量にデバック文がでるので、コマンドプロンプトと同じように
行数が決まっていて、古い行から勝手に消えていくようにしたいです。

初歩的に質問ですいません。
どなたか教えてください。よろしくお願いします。


tetrapod  2004-12-16 01:55:41  No: 55697

単に実行ログが取れればそれでよい、ということであれば
TRACE() とか OutputDebugString() とか。
わざわざ自アプリで取り込む必要は無いと思う。


pin  2004-12-16 02:04:09  No: 55698

その表示をどうしてもデバック文として
画面出力をしたいので、自アプリに取り込みたいのです。

デバック文という書き方がよくなかったのかもしれません。
画面出力したい文字列をCListBoxなどの中に表示したいのです。

よろしくお願いします。


pinpin  2004-12-16 02:04:56  No: 55699

すいません。↑名前が切れてしまいました。
申し訳ございません。


なーめ  2004-12-16 02:08:37  No: 55700

>> そのprintfは別スレッド(_beginthreadを
MFC なら AfxBeginThread() じゃないとダメじゃななかった?
>> TRACE() とか OutputDebugString() とか。
普通これですよね。
でも、Release版でも出したいなど、自前で持ちたいこともありますね。
そうすると CListBox なら、1行追加して、
1行削除するしかないし、マルチラインの CEdit にしても
同じですね。
UpdateData(TRUE)
CString csAdd;
csAdd.Format("....\r\n",....)
m_csEdit += csAdd;
int pos;
if(( pos = m_csEdit.Find( "\r\n" )) >= 0 )
{
  m_csEdit.Delete( 0, pos+2 );
}
UpdateData(FALSE);
こんなところでしょうか。


pinpin  2004-12-16 17:36:51  No: 55701

>> MFC なら AfxBeginThread() じゃないとダメじゃななかった?
_beginthreadで問題なく動くように見えています。

1行ごとにがんばってやりたいと思います。
ありがとうございました。


シャノン  2004-12-16 20:04:42  No: 55702

>> MFC なら AfxBeginThread() じゃないとダメじゃななかった?
> _beginthreadで問題なく動くように見えています。

「問題なく動いている」のと「問題なく動いているように見える」のは別ですので、くれぐれもご注意を。
意地悪く言えば、なぜ _beginthread を使うのですか?
CreateThread でも「問題なく動いているように見えればいい」のであれば、それでいいんでは?


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

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






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