星空网 > 软件开发 > 操作系统

WinMain与wWinMain,win32的字符集问题

刚接触win32开发的会发现,用vs新建一个win32项目默认代码里面的入口函数并不是WinMain而是_tWinMain或者wWinMain,这些都有什么区别呢?

WinMain对应的是多字节字符集(ANSI),wWinMain对应Unicode字符集。_tWinMain是tchar.h文件里面定义的:

#ifdef _UNICODE#define _tWinMain wWinMain#else#define _tWinMain WinMain#endif

 

编译时当字符集为ANSI时就同于WinMain,字符集为Unicode时同于wWinMain。

要更改字符集的话,在vs里面点 项目->项目属性

WinMain与wWinMain,win32的字符集问题images/loading.gif' data-original="http://images0.cnblogs.com/blog2015/723701/201508/211620108634613.png" />

 

windows api很多函数都分为两个版本,比如CreateWindow的定义如下:

#ifdef UNICODE#define CreateWindow CreateWindowW#else#define CreateWindow CreateWindowA#endif

 

那么,什么时候该用Unicode字符集,什么时候该用多字节字符集呢?

其实并不是程序中有中文时就必须用Unicode字符集,当windows系统语言为中文时,不管你选择哪个字符集都是可以正常显示中文的,但是系统语言不为中文时就会出现乱码了。所以如果你的软件需要适应多语言的windows系统的话就得用Unicode字符集。

另外需要说明的是,当字符集为Unicode时,向api函数传递的一个字符串的时候应该将该字符串转换为Unicode编码的,可用windows api里定义的TEXT宏来实现转换:

CreateWindow(wndClass, TEXT("这是窗口标题"), ......);




原标题:WinMain与wWinMain,win32的字符集问题

关键词:win

win
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

B站取消播放量分析:https://www.kjdsnews.com/a/1516290.html
出口加蓬注意事项:https://www.kjdsnews.com/a/1516291.html
寄月饼到马来西亚的服务:https://www.kjdsnews.com/a/1516292.html
万里汇&易税通 | 全球远航俱乐部财税合规专场活动:https://www.kjdsnews.com/a/1516293.html
必备知识| USPS邮寄可以更高效的秘密 | ShipSaving:https://www.kjdsnews.com/a/1516294.html
RWS认证咨询|确保绵羊的五项基本自由在任何时候都得到满足:https://www.kjdsnews.com/a/1516295.html
长治婚庆女司仪和主持人:https://www.vstour.cn/a/366176.html
北京丰台区水上乐园哪家好玩?:https://www.vstour.cn/a/366177.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流