Windows知识点记录

Unicode和Multibyte

windows的API中其实是有两个不同的函数,一个用来支持unicode,一个支持multibyte,比如最常见的MessageBox,其实有两个函数,分别是
MessageBoxA:用于MultiByte,A代表Ascii
MessageBoxW: 用于支持宽字符,W代表宽字符(wide character)

vs是如何做到切换的呢?

当我们在选择项目使用的语言时,windows就为我们添加或者是去掉了一些编译参数
1、选择语言
这里写图片描述

2、当选择Unicode时,看看windows为我们添加的编译参数
这里写图片描述

这里可以看到添加了UNICODE和_UNICODE选项,这两个是windowsAPI的相关头文件定义的,其中会用宏来选择,是用宽字符的函数还是窄字符的函数,比如MessageBoxA或者MessageBoxW,当我们的字符集是UNICODE时,在函数中调用MessageBox,其实最终调用的是MessageBoxW,如果是multibyte字符集,那么调用的就是MessageBoxA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值