首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

WinowsXP下读取的汉字传输到WinCE系统下后的显示有关问题

2012-02-09 
WinowsXP下读取的汉字传输到WinCE系统下后的显示问题我写的一个在winCE下运行的程序显示从WindowsXp系统发

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;

热点排行