LPCTSTR和LPTSTR和char *的区别及相互转化

您所在的位置:网站首页 constchar和char的区别 LPCTSTR和LPTSTR和char *的区别及相互转化

LPCTSTR和LPTSTR和char *的区别及相互转化

#LPCTSTR和LPTSTR和char *的区别及相互转化| 来源: 网络整理| 查看: 265

1、LPCTSTR和LPTSTR和char *的区别 LPSTR = char* LPCSTR = const char*

 

LPTSTR: 如果定义了UNICODE宏,那么baiLPTSTR = wchar_t*否则duLPTSTR = char* LPCTSTR: 如果定义了UNICODE宏,那么LPCTSTR = const wchar_t*,否则LPCSTR = const char* 告诉你方法zhi, "LP"前缀是dao历史遗留的,在Win32下就是 P ,代表指针的含义。 "C"代表const "T"的含义就是如果定义了UNICODE,它就是宽字符版本,否则就是Ansi版本。 完整定义如下:  

//Unicode 版本 typedef wchar_t WCHAR; typedef WCHAR *PWCHAR; typedef WCHAR *LPWCH, *PWCH; typedef CONST WCHAR *LPCWCH, *PCWCH; typedef WCHAR *NWPSTR; typedef WCHAR *LPWSTR, *PWSTR; typedef WCHAR UNALIGNED *LPUWSTR, *PUWSTR; typedef CONST WCHAR *LPCWSTR, *PCWSTR; typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR; // Ansi版本 typedef CHAR *PCHAR; typedef CHAR *LPCH, *PCH; typedef CONST CHAR *LPCCH, *PCCH; typedef CHAR *NPSTR; typedef CHAR *LPSTR, *PSTR; typedef CONST CHAR *LPCSTR, *PCSTR; #ifdef UNICODE typedef WCHAR TCHAR, *PTCHAR; typedef WCHAR TBYTE , *PTBYTE ; typedef LPWSTR LPTCH, PTCH; typedef LPWSTR PTSTR, LPTSTR; typedef LPCWSTR PCTSTR, LPCTSTR; typedef LPUWSTR PUTSTR, LPUTSTR; typedef LPCUWSTR PCUTSTR, LPCUTSTR; typedef LPWSTR LP; #else typedef char TCHAR, *PTCHAR; typedef unsigned char TBYTE , *PTBYTE ; typedef LPSTR LPTCH, PTCH; typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR; typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR; #endif

参考:LPCTSTR和LPTSTR和char *究竟有什么区别

2、char* 转换成 LPCTSTR char ch[1024] = "wo shi ni baba"; int num = MultiByteToWideChar(0,0,ch,-1,NULL,0); wchar_t *wide = new wchar_t[num]; MultiByteToWideChar(0,0,ch,-1,wide,num);

解析:

num 获得长字节所需的空间

MultiByteToWideChar()表示将s中的字符传递到ps指向的内存中。-1表示传输至s中的'\0'处,num表示传递的字节个数。

 

3、LPCTSTR 转换成 char * wchar_t widestr[1024] = L"wo shi ni yeye"; int num = WideCharToMultiByte(CP_OEMCP,NULL,widestr,-1,NULL,0,NULL,FALSE); char *pchar = new char[num]; WideCharToMultiByte (CP_OEMCP,NULL,widestr,-1,pchar,num,NULL,FALSE);

参考:char* 与 LPCTSTR 类型的互相转换

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3