[MFC]LPSTR LPCSTR LPWSTR LPCWSTR
记下几个字符串东东,即他们得区别:
LPSTR:一个32位指向字符串的指针,相当于char *;
LPCSTR:一个32位指向字符串常量的指针,相当于const char *;
LPWSTR:一个32位指向Unicode字符串指针,相当于wchar_t *;
LPCWSTR:一个32位指向Unicode字符串常量指针,相当于const wchar_t *;
当然我们也可以相互转换一下(强行转换会变乱码):
LPWSTR--->LPTSTR: W2T();
LPTSTR--->LPWSTR: T2W();
LPCWSTR--->LPCSTR: W2CT();
LPCSTR--->LPCWSTR:T2CW();
上面我们可以看到L为LONG,P为POINT指针,W为WIDE,C为constant,STR为string。
LPSTR:一个32位指向字符串的指针,相当于char *;
LPCSTR:一个32位指向字符串常量的指针,相当于const char *;
LPWSTR:一个32位指向Unicode字符串指针,相当于wchar_t *;
LPCWSTR:一个32位指向Unicode字符串常量指针,相当于const wchar_t *;
1 #ifdef UNICODE
2 typedef LPWSTR LPTSTR;
3 typedef LPCWSTR LPCTSTR;
4 #else
5 typedef LPSTR LPTSTR;
6 typedef LPCSTR LPCTSTR;
7 #endif
当然我们也可以相互转换一下(强行转换会变乱码):
LPWSTR--->LPTSTR: W2T();
LPTSTR--->LPWSTR: T2W();
LPCWSTR--->LPCSTR: W2CT();
LPCSTR--->LPCWSTR:T2CW();
上面我们可以看到L为LONG,P为POINT指针,W为WIDE,C为constant,STR为string。