mfc CSting、int、string、char* LPWSTR LPCWSTR 相互转换

CSting转int

bufNum =strtol(str.GetBuffer(),NULL,10); //这个在 字符集:使用多字节字符集 好使
swscanf_s(str.GetBuffer(0),_T("%x"),&bufNum);//这个在 字符集:使用Unicode字符集 好使

bufNum = _ttoi(str); //10进制

swscanf_s(str.GetBuffer(0),_T("%x"),&bufNum); //十六进制

int转 CSting

str.Format(_T("%04x"),bufNum );

 

CString 转string

CString cstr("chinazhangjie");
string str = (CStringA)cstr;

string 转 char *
如: 
string str="abc"
const char *p=str.data(); 
2.c_str 
如:string str="gdfd"
const    char *p=str.c_str(); 

//一个带\0,一个不带

int转string//这方法不太好

char buf[10];
sprintf_s(buf, "%d", m);
string mStr = buf;

string转int

int i;
sscanf("17","%D",&i);
cout< sscanf("17","%X",&i);
cout<

 

CSting 转 LPWSTR //unicode 字符集

wcscpy(pT->lpszText,T2W((LPTSTR)str.GetBuffer(NULL))); // CString 转换为 LPWSTR 
 str.ReleaseBuffer(); 
    或   
 USES_CONVERSION;
pT->lpszText = (LPWSTR)A2CW(W2A(str)); 
     str.ReleaseBuffer(); 

CSting 转  LPCWSTR//unicode 字符集

wcscpy(pT->lpszText,T2W((LPTSTR)str.GetBuffer(NULL))); // CString 转换为 LPWSTR 
 str.ReleaseBuffer(); 
   或   
USES_CONVERSION;
pT->lpszText = A2CW(W2A(str)); 
str.ReleaseBuffer(); 

你可能感兴趣的:(MFC)