タグ

VC++とc++に関するsngmrのブックマーク (4)

  • 文字列を示す "abc"、_T("abc")、L"abc" は全て意味が違う!(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. 文字を代入するときに使う " " (ダブルクオーテーション)。Windowsプログラミングでは_T(" ") を見かけることが多いから、それに倣って... char pszText[256]; strcpy(pszText,_T("あいうえお")); というようなソースコードを書いていないだろうか?残念ながらこれは大きな間違えだ。実はこの _T(" ")いうのはcharやWCHARに対してTCHARがあるのと同じで、ユニコードビルド時はユニコード文字列を、非ユニコード文字列時はSH

    sngmr
    sngmr 2009/08/08
  • char、wchar_t(WCHAR)とTCHAR(dinop.com)

    文字列を扱う型としてよく知られているchar型はsizeof(char)=1バイトの型だ。 charに代入できるのは半角文字1文字で、漢字など2バイトからなる全角文字を代入したいとき は(微妙な表現だが)2つのcharが必要になる。 ユニコードを扱うための型として用意されたのがこのwchar_tだ。sizeof(wchar_t)=2バイトの 型でありchar型よりも使用バイト数が多い。 wchar_tに代入できるのはユニコードでの1文字で、半角や全角文字などの区別はない。 ヘッダーの中では以下のように宣言されている。 typedef unsigned short wchar_t; typedef unsigned short WCHAR; // wc, 16-bit UNICODE character つまりwchar_tとWCHARのどちらもunsigned short型として定義されて

    sngmr
    sngmr 2009/08/08
  • http://blog.g-ishihara.com/article/28126342.html

    sngmr
    sngmr 2009/08/08
  • TCHARとかLPCTSTR、LPTSTRって何???(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. Windowsプログラミングからは切っても切り離せないのが、TCHARと、LPCTSTR、LPTSTRなどのTCHAR系列の型。結論から書くとこれはソースコードをユニコードと非ユニコード両対応にするための型だ(何のことだかサッパリ分からないって?こういうプログラミングの授業じゃ習わない意味不明な拡張が多いからWindowsプログラミングはややこしいんですよね)。 何も考えずに ・TCHAR = char ・LPCTSTR = const char* ・LPTSTR = char*

  • 1