// 复制字符串到临时空间并加上'/0',以便MultiByteToWideChar使用 char* pRecvStr = new char[size + 1]; memcpy(pRecvStr, pRecvDat, size); pRecvStr[size] = '/0'; int index = 0; // 解析出所有的字符串,跳过中间夹的'/0',否则MultiByteToWideChar会丢弃第一个'/0'后的数据 while (index < size - 1) { m_strRecShow += (LPCTSTR)_bstr_t(pRecvStr + index); // 移动到下一个字符串 index += strlen(pRecvStr + index) + 1; } delete[] pRecvStr; Header: comutil.h Lib: comsuppw.lib or comsuppwd.lib