WinCE5.0下宽字符的7条经验总结(原创)
来源:互联网 发布:人工智能时代 pdf 编辑:程序博客网 时间:2024/06/05 12:06
WinCE5.0下宽字符的7条经验总结 BY http://blog.csdn.net/xiaoxiongli/ blog
因为Wince只支持UNICODE!!!--仅仅记住这句话,你肯定会栽跟头,尽管它是真理!
在winCE下编程需要用16位代表一个字符的宽字符,由于在windows NT下编程习惯了,难免在winCE下要犯错误,虽然我已经在WinCE下把“宽字符”三个字刻在脑海中了。
以下是我的经验总结:
1:一般情况下(注意决不是全部,参见7)winCE下设计字符串的函数,用TEXT括起来,类也一样。
比如:CString str;
str.Format(TEXT("Hello everyone!!!"));
2:如需用ASCii字符(窄字符),也可以这么用:
char* p; p = "HEllo";
这样用是没有问题的,但要牢记这里是窄字符,是无法在WinCE下显示的,通常情况下还是用宽字符为好,但特殊情况下:比如说用于网络传输的情况下会用到这种,比如说我要在PDA上写一个网络程序,和PC主机进行通信。当然写成宽字符应该也没有什么问题吧?(应该没有什么问题)只不过是网络传输量增加了。
3: 所谓宽字符只是和字符串有关的,和int或者其他类型无关,该是几个字节还是几个字节
4:使用函数要注意,不是spintf了,而是swprintf,注意w代表了wchar_t的意思,还有由于WinCE不支持
5:可以用TCHAR来增加移植性,不过我不太喜欢用这个东西
6:可以使用WideCharToMultiByte和MultiByteToWideChar来进行“宽窄转换”
7:纠正一个误区,并非在所有的WinCE函数中都需要用宽字符,恰恰想法,有的函数需要用窄字符,比如WinSock的某些函数。例如:send(socketABC, "aaaaa", sizeof("aaaaa"))就行,而send(socketABC, TEXT("aaaaa"), sizeof(TEXT("aaaaa")))就无法编译通过了,当然想传的话,用结构体是一个不错的选择。
我就是初学WinCE,所以在这里栽了跟头,在IP设置上,用一个CString读进来,没有转成窄字符就去连接,导致我用TRACE来看ip地址完全正确,而就是连不上服务器,郁闷,搞了整整一天多才搞出来,浪费了时间啊,最好直接用常量字符传进去才连的上,这才发现是系统“做了手脚”。
- WinCE5.0下宽字符的7条经验总结(原创)
- EVC WINCE5.0仿Iphone滑动界面(参考+原创)
- WinCE5.0下触摸屏的校准
- wince5.0 下中英文
- Wince5.0下实现XP风格的开始菜单源码(VB.net编码实现)
- WinCE5.0下直接写屏 -- 函数 CreateDIBSection() 的使用
- WinCE5.0下VT6656USB无线网卡的使用
- WinCE5.0下VT6656USB无线网卡的使用
- WINCE5.0下MFC编程对键盘事件的相应
- WINCE5.0 6.0下的nand flash驱动整理
- C# wince5.0下的插入、删除、更新源码
- WinCE5.0下VT6656USB无线网卡的使用
- [原创翻译]WinCE5与WinCE6的虚拟内存布局(wwfiney@ARMCE)
- [原创翻译]WinCE5与WinCE6的虚拟内存布局
- linu下编程70条经验总结
- wince5下的视频捕捉思路
- wince5下生成graphedt的方法
- WinCE5.0的GPRS连接
- struts-config.xml 中action 属性配置中的scope问题
- asterisk十问十答
- 理解Session State模式+ASP.NET SESSION丢失
- Webshell与Serv-u结合获系统最高权限
- Linux 常用命令
- WinCE5.0下宽字符的7条经验总结(原创)
- 存储技术比对:SAN和NAS两种产品概念对比介绍
- Java 3D API官方教程[翻译一]
- SAN,NAS,DAS及其架构之间区别
- Java开发WAP中文问题解决方案
- 请不要忽视这些基础知识
- eclipse插件
- IP数据包的校验和算法
- 错误提示: A potentially dangerous Request.Form value was detected from the client ....