2.9 成为符合A N S I和U n i c o d e的应用程序
来源:互联网 发布:数据录入员靠谱吗 编辑:程序博客网 时间:2024/05/11 01:52
2.9 成为符合A N S I和U n i c o d e的应用程序
即使你不打算立即使用U n i c o d e,最好也应该着手将你的应用程序转换成符合U n i c o d e的应
用程序。下面是应该遵循的一些基本原则:
• 将文本串视为字符数组,而不是c h a r s数组或字节数组。
• 将通用数据类型(如T C H A R和P T S T R)用于文本字符和字符串。
• 将显式数据类型(如B Y T E和P B Y T E)用于字节、字节指针和数据缓存。
• 将T E X T宏用于原义字符和字符串。
• 执行全局性替换(例如用P T S T R替换P S T R)。
• 修改字符串运算问题。例如函数通常希望你在字符中传递一个缓存的大小,而不是字节。
这意味着你不应该传递s i z e o f ( s z B u ff e r ) ,而应该传递( s i z e o f ( s z B u ff e r ) / s i z e o f ( T C H A R )。另外,
如果需要为字符串分配一个内存块,并且拥有该字符串中的字符数目,那么请记住要按字节来
分配内存。这就是说,应该调用malloc(nCharacters *sizeof(TCHAR)), 而不是调用m a l l o c
( n C h a r a c t e r s )。在上面所说的所有原则中,这是最难记住的一条原则,如果操作错误,编译器
将不发出任何警告。
即使你不打算立即使用U n i c o d e,最好也应该着手将你的应用程序转换成符合U n i c o d e的应
用程序。下面是应该遵循的一些基本原则:
• 将文本串视为字符数组,而不是c h a r s数组或字节数组。
• 将通用数据类型(如T C H A R和P T S T R)用于文本字符和字符串。
• 将显式数据类型(如B Y T E和P B Y T E)用于字节、字节指针和数据缓存。
• 将T E X T宏用于原义字符和字符串。
• 执行全局性替换(例如用P T S T R替换P S T R)。
• 修改字符串运算问题。例如函数通常希望你在字符中传递一个缓存的大小,而不是字节。
这意味着你不应该传递s i z e o f ( s z B u ff e r ) ,而应该传递( s i z e o f ( s z B u ff e r ) / s i z e o f ( T C H A R )。另外,
如果需要为字符串分配一个内存块,并且拥有该字符串中的字符数目,那么请记住要按字节来
分配内存。这就是说,应该调用malloc(nCharacters *sizeof(TCHAR)), 而不是调用m a l l o c
( n C h a r a c t e r s )。在上面所说的所有原则中,这是最难记住的一条原则,如果操作错误,编译器
将不发出任何警告。
- 2.9 成为符合A N S I和U n i c o d e的应用程序
- U n i c o d e
- 2.8.2 Wi n d o w s定义的U n i c o d e数据类型
- 2.9.2 资源2.9.3 确定文本是A N S I文本还是U n i c o d e文本
- 用于C U I应用程序:/ S U B S Y S T E M : C O N D O L E,而用于G U I :S U B S Y S T E M : W
- R E C U R S I O N
- 要为Windows CE开发应用程序,必须懂得U n i c o d e
- C r e a t e P r o c e s s的b I n h e r i t H a n d l e s参数
- Te r m i n a t e T h r e a d函数是异步运行的函数,必须调用Wa i t F o r S i n g l e O b j e c t
- Oracle的Union、Union_All、Intersect、Minus用法---小笔记
- Windows 2000是使用U n i c o d e从头进行开发的
- Wi n d o w s函数l s t r c m p和l s t r c m p i是作为对Wi n d o w s函数 C o m p a r e S t r i n g的调用来实现
- Wi n E x e c和O p e n F i l e等,只是为了实现与1 6位Wi n d o w s程 序的向后兼容而存在
- linux系统编程,常见系统函数【 o p e n、 r e a d、 w r i t e、 lseek 、c l o s e】
- Cookie and Session
- Hibernate discriminator-value用法
- 2.8 如何编写U n i c o d e源代码
- 复制对象句柄--D u p l i c a t e H a n d l e 函数
- 对于Nexus 7的合作 华硕和Google高层想说啥?
- sdma
- select函数
- 关于oracle普通被锁的问题解决
- VS 没有找到mspdb80.dll 错误
- 2.9 成为符合A N S I和U n i c o d e的应用程序
- VC6.0 中全局变量的应用方法
- 系统的toast
- HFS+分区(mac os分区)在win 7/win 8下相互读写的方法
- jstring转换到C语言所用的char
- 安装mysql 获得 mysql.h 建立C接口
- 用NodeJS打造你的静态文件服务器
- 各种html文本框input特效风格
- win7下ffmpeg编译动态链接库整理