通知
すべてクリア
Topic starter
2002年6月22日 12:52 AM
TCHAR szText[] = TEXT (文字の表示) ;
のようにTEXT()をつかっています。これは、どういう意味でしょうか?
また、_TEXT()とはどう違うのでしょうか?
TEXTは使えるのですが、_TEXT()にすると使えないのですが
どうしてでしょうか?
よろしくお願いします
環境
Windows98
VC++6.0
2002年6月22日 5:17 AM
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
};
に,それぞれ等価です。