如何把含有汉字的BSTR转换为char*字符串?
在service里接收到一个从client端传过来的字符串(BSTR类型),使用时需要将其转换为char*类型,使用
如下语句:
char* strDes = NULL;
int nSrcLen = bstr != NULL ? wcslen(bstr) : 0;
if (nSrcLen != 0)
{
strDes = new char[nSrcLen * 2 + 1];
int nRet = wcstombs((char*)strDes, bstr, (nSrcLen*2)+1);
}
可是wcstombs在遇到双字节字符时返回错误(-1),如果bstr包含汉字,我应该如何做呢?
上面的语句是模仿CString做的,CString能够正确转换,但CString里调用的是 _wcstombsz() , 而MSDN里并没有 _wcstombsz()。还有别的函数吗?
谢谢!