タグ

ブックマーク / www.usefullcode.net (3)

  • 紛らわしいぞ!LPCTSTR、LPTSTR、LPSTR、LPCSTRは全部意味が違う!(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. TCHAR系の型というのは初めての人にとっては非常に理解しにくい。理解できれば使えるようになるのだが、そうなっても実装に間違えることが多々ある。その理由がこれ。LPCTSTR、LPTSTR、LPSTR、LPCSTR、LPWSTR、LPCWSTRの6つが全て意味が違うということ。ぱっと見ではほとんど同じだがよく見ると「C」が付いていたり、「T」が1つ多かったりと微妙にスペルが異なっている。 これがどう違うのかと言うと... LPSTR = char* LPCSTR = const c

  • 文字列をUTF8に変換する(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. 文字列をUTF8に変換するにはいくつかの方法がある。今回はATLライブラリに備わるインライン関数「AtlUnicodeToUTF8」を利用した。 AtlUnicodeToUTF8はユニコード文字列をUTF8文字列に変換するためのものだ。そのため変換元の文字列をユニコードビルド/非ユニコードビルドで場合分けし、非ユニコードビルドの場合は一度ユニコードに変換してからUTF8に変換して使う。 ここでは使いやすいようにTCHAR文字列をUTF8文字列に変換する関数を用意した。 依存環境:A

  • 文字列を示す "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

  • 1