成为符合ansi和unicode的应用程序

将应用程序转换成符合unicode的应用程序应该遵循的原则:
1.将文本串作为字符数组,而不是chars数组或字节数组。
2.将通用数据类型如TCHAR和PTSTR用于文本数组和字符串。
3.将显示数据类型如BYTE和PBYTE用于字节,字节指针和数据缓存。
4.将TEXT宏用于原义字符和字符串。
5.全局性替换,如PTSTR替换PSTR
6.修改字符串运算问题,类似sizeof(szBuffer)/(TCHAR), malloc(nCharacters *sizeof(TCHAR))

资源编译器对所有的资源进行编译时,输出文件是资源的二进制文件,资源中的字符串值总是写作unicode字符串,如果未定义UNICODE宏,系统将进行内部转换。如调用loadstring  函数实际是调用loadstringA(),loadstringA()就会从你的资源文件中读取字符串,并把它转换成ANSI字符串。


IsTextUnicode函数用于确定文本文件是否未unicode。


MultibyteToWideChar和WideCharToMultiByte可用于两种字符串之间的相互转化,可把0作为cchMultiByte的值作

为参数传入来确定需要分配的缓存大小,再调用一次实现转换。

这样你可以为你的dll函数编写unicode和ansi版本(例子可参见windows核心编程2.9.4),最后再用dll分配的头

文件中,可以用#ifdef
              #define
              #else
              #define
建立两个函数的原型。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值