C++ 之 字符 字符串

摘自百度百科url

LPCTSTR,LPWSTR, PTSTR, LPTSTR,wchar_t區別
L表示long 指針,這是爲了 兼容Windows 3.1等16位操做系統遺留下來的,在win32中以及其餘的32位操做系統中, long指針和near指針及far 修飾符都是爲了兼容的做用,沒有實際意義。即win32中,long,near,far指針與普通指針沒有區別,LP與P是等效的。
P表示這是一個指針。
T表示_T宏,這個宏用來表示你的 字符是否使用UNICODE, 若是你的程序定義了UNICODE或者其餘相關的宏,那麼這個字符或者字符串將被做爲UNICODE字符串,不然就是標準的ANSI字符串。
STR表示這個變量是一個字符串。
C表示是一個 常量,const。
LPTSTR:
若是定義了UNICODE宏則LPTSTR被定義爲LPWSTR。typedef LPTSTR LPWSTR;
不然LPTSTR被定義爲LPSTR。 typedef LPTSTR LPSTR;
下面列出一些經常使用的typedefs:
類型 MBCS Unicode
WCHAR <-> wchar_t
LPSTR <-> char*
LPCSTR <-> const char*
LPWSTR <-> wchar_t*
LPCWSTR <-> const wchar_t*
TCHAR <-> char 或  wchar_t
LPTSTR <->TCHAR* (或wchar_t*)
LPCTSTR <-> const TCHAR*
因此結論,在VS2005系統中,爲提升可移植性,定義 字符串時用TCHAR,轉化爲UNICODE時用_T而不用L。
相關文章
相關標籤/搜索