重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下記コードのstrをエディットボックスで表示すると(null)と表示されてしまいます。
スレッドを起動した中で、親クラスのstrGetTextにデータを入れておいて、
WM_MKLOGのメッセージで親クラス内のエディットボックスに取得データと時間
を表示させようと思っています。
このとき(%s)の部分が((null))と表示されてしまいます。
すいませんがどなたか教えていただけますでしょうか?

{
CTime ctime;
CString str;
ctime = CTime::GetCurrentTime(); // 現在時刻取得
str = ctime.Format("%Y%m%d%H%M%S");// "YYYYmmddHHMMSS"形式に変換
mycls->strGetText.Format(_T("取得 0x%x (%s)\r\n"), data,str);
}
PostMessage(mycls->m_hWnd, WM_MKLOG, 0, 0);

A 回答 (2件)

dataって型はなんでしょうか?



CString::Format で指定する、書式指定文字の %x は printf関数等と同じで int 型の変数に対するものです。

ですので、dataがint型でないとおかしなことが起こる可能性があります。

dataの型に合ったサイズを指定すると解決するかも?
(参考)printf 関数と wprintf 関数のサイズ プリフィックスと型指定子
http://msdn.microsoft.com/ja-jp/library/tcxf1dw6 …

dataがshort型なら %hx、dataが__int64型なら %I64x 等...

この回答への補足

ありがとうございました!!
無事解決いたしました。
たしかに、dataがDWORD64でした。dataの型が影響するとは思っていなかったので
省略してしまいました。
今度からはもう少し情報を詳しく書くようにします。

補足日時:2011/02/02 18:12
    • good
    • 0
この回答へのお礼

補足でお礼を書いてしまいました。。。
ありがとうございました。

お礼日時:2011/02/02 18:13

環境はきちんと書きましょう。


おそらく、WindowsでVisualC++のMFCを使用しているのでしょうが。

提示されたソースでは、dataやmyclsが何なのか不明です。
CTime::Formatの問題ではない可能性もあるので、ブレークポイントを設定してstrの内容を確認するとかしてみまみしょう。(メッセージボックスやTRACEを使ってもいいでしょう)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!