字符类问题汇总

CString、BSTR和LPCTSTR之间的区别

1、BSTR与LPCTSTR之间的转换

  BSTR 转换为LPCTSTR

  BSTR bstr;

  LPCTSTR lpctstr;

  lpctstr=(LPCTSTR)_bstr_t(bstr);

  LPCTSTR 转换为BSTR 

2、LPSTR与CString之间的转换

  CString 转换成 LPTSTR

  使用lstrcpy()
  CString strText( "This is a test" );
  LPTSTR lpszText = new TCHAR[strText.GetLength()+1];  
  lstrcpy( lpszText, strText );

  LPTSTR 转换成 CString

  (1)直接赋值
  CString strText;
  LPTSTR lpszText = _T("LPTSTR >> CString");
  strText = lpszText;
  ::MessageBox( NULL, strText , _T("标题"), MB_ICONASTERISK|MB_TASKMODAL|MB_OK );

  (2)CString::Format()格式化
  CString strText;
  LPTSTR lpszText = _T("LPTSTR >> CString");
  strText.Format( _T("%s"), lpszText );
  ::MessageBox( NULL, strText , _T("标题"), MB_ICONASTERISK|MB_TASKMODAL|MB_OK );

  

原文地址:https://www.cnblogs.com/zhehan54/p/4719740.html