WinowsXP下读取的汉字传输到WinCE系统下后的显示问题
我写的一个在winCE下运行的程序显示从WindowsXp系统发过来的读取TXT文件得到的汉字数据,但是总是显示方框,我用MultiByteToWideChar()强制转化后显示“??”,请问如何解决?
代码如下:
Cstring m_no;
m_no.Format(_T( "%c%c%c%c%c%c%c%c "),result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7]);
MultiByteToWideChar(CP_ACP,0,(const char*)(LPCTSTR)m_no,8,m_no1,8);
m_NO=m_no1;
UpdateData(false);
result[](char数组)为传输过来的汉字数据,
m_NO为窗体中输出文本框变量。
[解决办法]
你调试一下,看看result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7]这几个数组中是中文吗?不行,吧数组类型设置为WCHAR看看
[解决办法]
m_no.Format(_T( "%c%c%c%c%c%c%c%c "),result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7]);
//////////////////////////
直接这样做好了
result[8] = 0x00;
m_no = resoult;
//或者
result[8] = 0x00;
MultiByteToWideChar(CP_ACP,0,result,8,m_no,8);
[解决办法]
//获取转换后的长度
int len = MultiByteToWideChar(CP_ACP,0,(const char*)result,-1,0,0);
TCHAR* aa = new TCHAR[len + 1]; //分配内存
ZeroMemory(aa, len + 1);
MultiByteToWideChar(CP_ACP,0,(const char*)result,-1,aa,len);
m_NO=aa;
。。。。
delete [] aa;
aa = NULL;