LP○○STRの簡単な覚え方

VC++

Win32APIを使用していると、文字列を扱うAPI関数で「LP〇〇STR」という型がよく出てきます。

初めて見ると「似たような名前で覚えづらい」と思いますが、実は簡単な法則で名前が決まっています。

この記事では、「LP〇〇STR」について名前の簡単な覚え方とそれぞれの型が持つ意味について紹介します。

LP〇〇STRの種類

Win32APIで使用されるLP〇〇STRは下表のとおり6種類存在します。

型名型の意味
LPSTRchar*
LPCSTRconst char*
LPWSTRWCHAR* (wchar_t*)
LPCWSTRconst WCHAR* (const wchar_t*)
LPTSTRTCHAR*
LPCTSTRconst TCHAR*
LP〇〇STRの種類とそれぞれの型が持つ意味

TCHARはプロジェクトのプロパティ(文字セット)に応じて「char」と「WCHAR (wchar_t)」が切り替わります。

文字セットTCHARの型
Unicode文字セットを使用するWCHAR (wchar_t)
マルチバイト文字セットを使用するchar
TCHARが表す型

プロジェクト作成時には「Unicode文字セットを使用する」が選択されているためデフォルトでは「TCHAR」は「WCHAR (wchar_t)」になります。

LP〇〇STRの覚え方

LP〇〇STRの名称は4つのブロックから構成されていて、それぞれ「LP」「無 or C」「無 or W or T」「STR」が指定されています。

「LP」と「STR」は固定なので、「C」がついているかいないか、「W」「T」がついているかいないか、だけでLP〇〇STRが何を表しているか簡単に理解することができます。

LP無 or C無 or W or TSTR型名
LP無 (char)STRLPSTR
LPC (const)無 (char)STRLPCSTR
LPW (WCHAR)STRLPWSTR
LPC (const)W (WCHAR)STRLPCWSTR
LPT (TCHAR)STRLPTSTR
LPC (const)T (TCHAR)STRLPCTSTR
LP〇〇STRの名称

終わりに

「LP〇〇STR」について名前の簡単な覚え方とそれぞれの型が持つ意味について紹介しました。

似たような名前の型が6種類あって覚えづらいと思いがちですが、簡単な規則を覚えればそれぞれが何を表しているか簡単に理解できるようになります。

この記事について誤っている点・不明な点などありましたらコメントまでお願いします。

コメント

タイトルとURLをコピーしました