首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为何用CString:Format函数无法将char*转换CString?解决办法

2012-01-14 
为何用CString::Format函数无法将char*转换CString?VC2005UnicodevoidCChat2Dlg::OnBnClickedBtnTest(){//

为何用CString::Format函数无法将char*转换CString?
VC2005
Unicode

void   CChat2Dlg::OnBnClickedBtnTest()
{
//   TODO:   在此添加控件通知处理程序代码
char   buff[]= "This   is   test   string ";
CString   msg;
msg=buff;   MessageBox(msg);
msg.Format(TEXT( "%s "),buff);   MessageBox(msg);
}
上述程序两次显示的内容不一样,第一次正确,第二次是乱码。


[解决办法]
void CChat2Dlg::OnBnClickedBtnTest()
{
// TODO: 在此添加控件通知处理程序代码
TCHAR buff[]=_T( "This is test string ");
CString msg;
msg=buff;
MessageBox(msg);
msg.Format(_T( "%s "),buff);
MessageBox(msg);
}
[解决办法]
CString 的operator = 接收char *, 在内部进行转换
第二个乱码的原因相信你已经很清楚了
[解决办法]
非UNICODE工程,强制使用UNICODE字符串,出的问题,用_T()就可以了,根据工程自动转换的
[解决办法]
CString strTemp;
strTemp = m;
str.Format(TEXT( "Sorry, try again.%s "), strTemp);
MessageBox(str);

热点排行