关于字符串

1,_T宏和不使用_T宏的区别

MessageBox("你好")在Unicode版本的程序里面不能通过编译,因为MessageBoxW不能用ANSI的字符串作参数,MessageBox(_T("你好"))就可以。

当定义了UNICODE   或_UNICODE时,  _T()   就相当于L"",也就是说把括号里的字符变成了16B字符。

 

2,LPSTR,LPWSTR and LPTSTR

LPSTR Pointer to a null-terminated string of 8-bit Windows (ANSI) characters.

LPWSTR Pointer to a null-terminated string of 16-bit Unicode characters. For more information.

LPTSTR is An LPWSTR if UNICODE is defined, an LPSTR otherwise.

 

LPCSTR,LPCWSTR and LPCTSTR 就是多了一个constant属性。

 

3, CString, LPSTR, char* 的转换

 

char*转换成CString  

 

  char   chArray[]   =   "This   is   a   test";

  LPTSTR   p   =   _T("This   is   a   test");  
  CString   theString ;  

  theString   =   p;   // 直接
  theString   =  chArray;// 直接转换

  theString.format(_T("%s"),   chArray);   // 用format

 

CString转换成chLPTSTR     

 

 LPTSTR   lpsz   =(LPTSTR)(LPCTSTR)theString; // 强转换

 LPTSTR   p   =   s.GetBuffer();   // 这样可以修改

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值