windows中文字符显示的问题 大虾大妈们好: windows下面我直接用TextOut(…………,“中文字符串”,strelen(“中文字符串”))这样的形式为什么中文字符串后面显示有乱码的撒!知道的留下指导用语,多谢小的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 strlen(chs)统计时用byte作单位,而TextOut计算Len是用word(即双字节)。这样,如果strlen(chs)反回奇数的值,而TextOut会算成偶数的值,即比strlen(chs)的多1byte,这样内存就溢出了。后面当然是乱码了。 我说错了。是strlen返回是byte,而TextOut可能会以word(双字节,中文)来处理。即strlen(...)返回值的两倍。这样内存溢出了。应该与语言的设置有关。我是路过的,几年前用VC++,随便说说。 本帖最后由 Mackz 于 2009-04-24 06:43:33 编辑 strelen对应是Win98以前的非unicode的,还是用新的API吧,一般字符有乱码,就是宽字符的问题! 用字串的类CString:CString str("中文字符串");TextOut( hdc, x, y, str, str.length());Try! 为什么没有GetData()? WSABUF接收字符问题 如何复制二进制文件? CFileDialog能不能打开网上邻居的共享目录??或者有其他办法实现打开局域网的共享目录呢? 用tcl/tk编的源代码可以用VC编译吗? 实时曲线绘制问题!!急!!! 请问Combo的FindString函数该如何用? VC怎么知道是调用main()还是winmain(),请高手指导 计算两个日期间的天数 请教一个异常问题 VC++ OnVScroll 问题 请教COM问题
这样内存溢出了。
应该与语言的设置有关。
我是路过的,几年前用VC++,随便说说。
CString str("中文字符串");
TextOut( hdc, x, y, str, str.length());Try!