主要思路:
1、将wchar_t*的字符串转为char*字符串
2、然后直接用std::string的operator=做赋值操作
案例:
//std::string的目标
std::string szDst;
//wText为wchar_t*的内容
wchar_t wText[20] = {L"宽字符转换实例!OK!"};
//WideCharToMultiByte的运用
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,wText,-1,NULL,0,NULL,FALSE);
//psText为char*的临时数组,作为赋值给std::string的中间变量
char *psText;
psText = new char[dwNum];// WideCharToMultiByte的再次运用
WideCharToMultiByte (CP_OEMCP,NULL,wText,-1,psText,dwNum,NULL,FALSE);
//std::string赋值
szDst = psText; //大功告成
//psText的清除
delete []psText;
注:本程序在vs2005里成功