MFC中怎样将 CString 转为 char*
的有关信息介绍如下:1、GetBuffer函数使用CString::GetBuffer函数。char*p;CStringstr="hello";p=str.GetBuffer(str.GetLength());str.ReleaseBuffer();将CString转换成char*时CStringstr("aaaaaaa");strcpy(str.GetBuffer(10),"aa");str.ReleaseBuffer();当我们需要字符数组时调用GetBuffer(intn),其中n为我们需要的字符数组的长度.使用完成后一定要马上调用ReleaseBuffer();还有很重要的一点就是,在能使用constchar*的地方,就不要使用char*2、memcpyCStringmCS=_T("cxl");charmch;memcpy(mch,mCS,20);3、用LPCTSTR强制转换:尽量不使用char*ch;CStringstr;ch=(LPSTR)(LPCTSTR)str;CStringstr="good";char*tmp;sprintf(tmp,"%s",(LPTSTR)(LPCTSTR)str);4、CStringMsg;Msg=Msg+"abc";LPTSTRlpsz;lpsz=newTCHAR[Msg.GetLength()+1];_tcscpy(lpsz,Msg);char*psz;strcpy(psz,lpsz);
CString类向constchar*转换chara;CStringstr("aaaaaa");strncpy(a,(LPCTSTR)str,sizeof(a));或者如下:strncpy(a,str,sizeof(a));以上两种用法都是正确地.因为strncpy的第二个参数类型为constchar*.所以编译器会自动将CString类转换成constchar*.CString转LPCTSTR(constchar*)CStringcStr;constchar*lpctStr=(LPCTSTR)cStr;LPCTSTR转CStringLPCTSTRlpctStr;CStringcStr=lpctStr;将char*类型的变量赋给CString型的变量可以直接赋
memcpy(pStr,ab.GetBuffer(0),ab.GetLength()*sizeof(TCHAR));
ab.ReleaseBuffer();
在CString变量前面直接加(char*)(const wchar_t *)或(LPSTR)(LPCTSTR)或(char*)(LPCTSTR)
微软有现成的转换函数,如下,在前面加个宏定义,USES_CONVERSION;然后用宏转换T2A。
CString str = _T("中国人");
USES_CONVERSION;
char* p = T2A(str.GetBuffer(0));
str.ReleaseBuffer();
微软有现成的转换函数,如下,在前面加个宏定义,USES_CONVERSION;然后用宏转换T2A。
CString str = _T("中国人");
USES_CONVERSION;
char* p = T2A(str.GetBuffer(0));
str.ReleaseBuffer();