16,471
社区成员
发帖
与我相关
我的任务
分享
CString MultiToWide(char * ch)//将多字节转换为宽字符
{
int clen=strlen(ch);//计算长度
int wlen=MultiByteToWideChar(CP_ACP,0,ch,clen,NULL,0);//CP_ACP使用微软ansi.获得多字节字符大小
TCHAR *chartemp = new TCHAR[wlen+1];
MultiByteToWideChar(CP_ACP,0,ch,clen,(LPWSTR)chartemp,wlen);//多字节转换为宽字符
chartemp[wlen]='\0';//末尾加上结束标记
CString stout;
stout.Append(chartemp);//转换为CString
delete []chartemp;
return CString(stout);
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
char client[1024]={'\0'};
sprintf_s(client,"客户端 %s:%d 信息","127.0.0.1", "5566");
CString sClient=MultiToWide(client);
std::cout<<sClient<<std::endl;
getchar();
return 0;
}
char client[1024]={'\0'};
sprintf_s(client,"客户端 %s:%d 信息","127.0.0.1", 5566);
getchar();
这两句我在VC2008控制台(不包含MFC)下能正确执行,但到了VC2008包含MFC的控制台下运行时就会出现如上错误!