TEXTとは

[戻る]
信二 2002/06/22(土) 00:52:00
TCHAR szText[] = TEXT ("文字の表示") ;

のようにTEXT()をつかっています。これは、どういう意味でしょうか?

また、_TEXT()とはどう違うのでしょうか?

TEXTは使えるのですが、_TEXT()にすると使えないのですが
どうしてでしょうか?
よろしくお願いします

環境
 Windows98
 VC++6.0

YuO [E-Mail] 2002/06/22(土) 05:17:00
TEXTは,引数をシンボルUNICODEが
・定義されているときはワイド文字・ワイド文字列リテラル
・定義されていないときは従来文字・従来文字列リテラル
としてわりあてるものです。

#if defined(UNICODE)
#define TEXT(s) L##s
#else
#define TEXT(s) s
#endif

VC++日本語版において,
・ワイド文字にはUCS-2を
・従来文字にはWindows-31J (Shift_JIS + α)を
それぞれ使います。なので,
> TCHAR szText[] = TEXT ("文字の表示") ;
は,UNICODEが定義されているときは
wchar_t szText[6] = {
 0x6587, 0x5B57, 0x306E, 0x8868, 0x793A, 0x0000
};
に,定義されていないときは
char szText[11] = {
 0x95, 0xB6, 0x8E, 0x9A, 0x82, 0xCC, 0x95, 0x5C, 0x8E, 0xA6, 0x00
};
に,それぞれ等価です。

古いスレッドには追加発言できません。