★初心者にVisual C++を教えるスレ★ Part34
■ このスレッドは過去ログ倉庫に格納されています
0040デフォルトの名無しさん
2009/06/22(月) 13:51:08思いつきでこんなクラス書いてみました。
class CLocalTime
{
private:
char buf[32];
SYSTEMTIME SysTime;
public:
CLocalTime()
{
}
operator char *();
};
CLocalTime::operator char *()
{
GetLocalTime(&SysTime);
sprintf_s(buf, 31, "%04d/%02d/%02d %02d:%02d:%02d",
SysTime.wYear, SysTime.wMonth, SysTime.wDay,
SysTime.wHour, SysTime.wMinute, SysTime.wSecond);
buf[31] = '\0';
return buf;
}
これで、例えば printf なんかで使うときに、
printf("通過![%s]\n", (char *)CLocalTime());
ときちんとキャストすればちゃんと表示されるんですが、
printf("通過![%s]\n", CLocalTime());
だけで表示させるにはどうすればいいんでしょうか。operator CLocalTime &() を
追加してみましたがダメでした。CAtlStringA なんかは後者できちんと表示されています。
■ このスレッドは過去ログ倉庫に格納されています