【转载】CString,string,char数组的转换

来源:互联网 发布:驴皮怎么熬制阿胶知乎 编辑:程序博客网 时间:2024/05/16 01:28

出处:http://ticktick.blog.51cto.com/823160/317550

  1. //----------------ANSI字符串转换为UNICODE字符串----------------------//   
  2.  
  3. // 待转换的数组   
  4. char szDCBparam[50] {'0','1','\0'};   
  5.  
  6. // 计算需要的缓冲区大小   
  7. DWORD dwNum MultiByteToWideChar (CP_ACP, 0, szDCBparam, -1, NULL, 0);   
  8. // 分配存放转换后数据的缓冲区   
  9. wchar_t *pwText new wchar_t[dwNum]   
  10. // 转换后的数据存放在pwText所指向的空间  
  11. if (!MultiByteToWideChar (CP_ACP, 0, szDCBparam, -1, pwText, dwNum))   
  12.   
  13.     return  
  14.   
  15. // 注: 如果是char型数组转CString,直接使用CString szTest = CString(szDCBparam);
  16.  
  17.  
  18. //----------------UNICODE字符串转换为ANSI字符串----------------------//  
  19. //----------------将CString转为char型数组---------------------------//  
  20.  
  21. // 待转换的数据   
  22. CString szErrorInfo _T("this is test string!");   
  23.  
  24. // 保存错误信息的ANSI字符串的缓冲区,注意,缓冲区要足够大   
  25. char InfoString[100];   
  26.  
  27. // 转换后的数据存放在InfoString数组中  
  28. if (!WideCharToMultiByte(CP_ACP,0,LPCTSTR(szErrorInfo),-1,InfoString,100,NULL,NULL))   
  29.   
  30.     return  
  31.   
  32.  
  33. //----------------将CString转为string----------------------//  
  34. CString cstr=_T("test");   
  35. std::string str (CStringA)cstr;   
  36. // 注意,在vs2008下,使用std::string temp = cstr.GetBuffer(0)不行。
  37.  
  38. //----------------将string转为CString----------------------//  
  39. std::string strTest "test";  
  40. CString cstrTest CString(strTest.c_str()); 
0 0
原创粉丝点击