vs2010 unicode 下类型转换CString,char*,char,string,int,double

Unicode下 string 转 CString

[cpp] view plaincopy
 
  1. string msg = "";  
  2. CString cs;  
  3. cs.Format(_T("%s"),CStringW(msg.c_str())); //CStringW是为了防止乱码  

Unicode下CString转换为char *

[cpp] view plaincopy
 
  1. //方法一:使用API:WideCharToMultiByte进行转换  
  2.               CString str = _T("D:\校内项目\QQ.bmp");  
  3.             //注意:以下n和len的值大小不同,n是按字符计算的,len是按字节计算的  
  4.               int n = str.GetLength();     // n = 14, len = 18  
  5.              //获取宽字节字符的大小,大小是按字节计算的  
  6.              int len = WideCharToMultiByte(CP_ACP,0,str,str.GetLength(),NULL,0,NULL,NULL);  
  7.              //为多字节字符数组申请空间,数组大小为按字节计算的宽字节字节大小  
  8.             char * pFileName = new char[len+1];   //以字节为单位  
  9.             //宽字节编码转换成多字节编码  
  10.             WideCharToMultiByte(CP_ACP,0,str,str.GetLength(),pFileName,len,NULL,NULL);  
  11.              pFileName[len+1] = '';   //多字节字符以''结束  
  12. //方法二:使用函数:T2A、W2A  
  13.              CString str = _T("D:\校内项目\QQ.bmp");  
  14.               //声明标识符  
  15.              USES_CONVERSION;  
  16.              //调用函数,T2A和W2A均支持ATL和MFC中的字符转换  
  17.              char * pFileName = T2A(str);    
  18.             //char * pFileName = W2A(str); //也可实现转换  
  19.             注意:有时候可能还需要添加引用#include   <afxpriv.h>  


Unicode下char *转换为CString

[cpp] view plaincopy
 
  1. char *pch = "ddd";    
  2. CString cs;  
  3. cs.Format(_T("%s"),CStringW(pch));  


Unicode下 CString类型的转换成int 

[cpp] view plaincopy
 
  1. CString aaa = "16" ;      
  2. int int_chage = atoi((lpcstr)aaa) ;     

unicode 下 string转换char*

[cpp] view plaincopy
 
  1. void CegDlg::strToChar(string str,char* &ch)  //要转换的字符串str  接受*ch        
  2. {  
  3.     CString cs;  
  4.     cs.Format(_T("%s"),CStringW(str.c_str()));//先转换成cstring    
  5.     int len = WideCharToMultiByte(CP_ACP,0,cs,cs.GetLength(),NULL,0,NULL,NULL);  
  6.     char * pFileName = new char[len];    
  7.     memset(pFileName,0,sizeof(pFileName));  
  8.     WideCharToMultiByte(CP_ACP,0,cs,cs.GetLength(),pFileName,len,NULL,NULL);  
  9.     pFileName[len] = '';    
  10.     ch = pFileName;  
  11. }  


在Unicode下的CString to double 

[html] view plaincopy
 
  1. CSting sTemp("123.567");  
  2. double dTemp = _wtof(sTemp.GetString());  

在Unicode下的char* 转 int

[html] view plaincopy
 
    1. char *ch ="32";  
    2. int  i  =  atoi(ch);  
原文地址:https://www.cnblogs.com/For-her/p/3658005.html