在2005遇到的一个例子,记录下来的。

一段有趣的程序:
有个需求:需要将中英文混合的字符从GPRS模块中发出去,把“M中?”转换成unicode代码放在outmsg中后,需要加一个“ctrl+z”即“^z”作为结束符通知模块发送。

代码:

下面例子先行测试:

CString str="M中?";//多字节
WCHAR szWideBuffer[20];//宽字节空间
memset(szWideBuffer, 0, sizeof(WCHAR) * 20);//初始化
MultiByteToWideChar(CP_ACP, 0, str, -1, szWideBuffer, 20);//多字节转宽字节
szWideBuffer[wcslen(szWideBuffer)] = 0x1a;//不可见控制字符“^z”
TRY
{
CFile file("test.txt", CFile::modeWrite | CFile::modeCreate);
file.Write(szWideBuffer, sizeof(WCHAR) * wcslen(szWideBuffer));//写入文件,以便检测数据是否需要
file.Close();
}
CATCH_ALL(e)
{
e->ReportError();
}
END_CATCH_ALL