您的位置:首页 > 其它

mfc宽字节widechar与多字节multiChar相互转换

2012-02-27 09:31 615 查看
string WideCharToMultiChar( wstring in_str)

{

string return_str;

int len=WideCharToMultiByte(CP_ACP,0,in_str.c_str(),in_str.size(),NULL,0,NULL,NULL);

char* buffer=new char[len+1];

WideCharToMultiByte(CP_ACP,0,in_str.c_str(),in_str.size(),buffer,len,NULL,NULL);

buffer[len]='\0';
return_str.append(buffer);

delete []buffer;

return return_str;

}

void WideCharToMultiChar( wstring in_str,char* out_ptr )

{

ASSERT(out_ptr);

string return_str;

int len=WideCharToMultiByte(CP_ACP,0,in_str.c_str(),in_str.size(),NULL,0,NULL,NULL);

char* buffer=new char[len+1];

WideCharToMultiByte(CP_ACP,0,in_str.c_str(),in_str.size(),buffer,len,NULL,NULL);

buffer[len]='\0';

strcpy_s(out_ptr,strlen(out_ptr),buffer);

return_str.append(buffer);

delete []buffer;

}

//

wstring MultiCharToWideChar( string in_str)

{

wstring return_wstr;

int len=MultiByteToWideChar(CP_ACP,0,in_str.c_str(),in_str.size(),NULL,0);

TCHAR *buffer=new TCHAR[len+1];

MultiByteToWideChar(CP_ACP,0,in_str.c_str(),in_str.size(),buffer,len);

buffer[len]='\0';

return_wstr.append(buffer);

delete []buffer;

return return_wstr;

}

void MultiCharToWideChar( string in_str,wstring* out_wstr )

{

//wstring return_wstr;

int len=MultiByteToWideChar(CP_ACP,0,in_str.c_str(),in_str.size(),NULL,0);

TCHAR *buffer=new TCHAR[len+1];

MultiByteToWideChar(CP_ACP,0,in_str.c_str(),in_str.size(),buffer,len);

buffer[len]='\0';

out_wstr->append(buffer);

delete []buffer;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: