win32 console unicode _tmain _TCHAR

参考: 

http://stackoverflow.com/questions/895827/what-is-the-difference-between-tmain-and-main-in-c

http://msdn.microsoft.com/en-US/library/fzc2cy7w(v=VS.80).aspx


在win32 console程序开发中,

Visual C++扩展了标准C++的main函数,定义了wmain入口,新增了wchar_t关键字,以支持Unicode(UTF-16)字符。

(相应的,原有的ASCII字符串的函数有对应的_wxxx, _txxx系列函数)


同时,定义了_tmain用于灵活的在wmain和main之间转换,

定义了_TCHAR用于灵活的在wchar_t和char之间转换。


当定义了_UNICODE时,使用wmain和wchar_t,否则使用main和char。


在visual studio 2010中,开启和关闭_UNICODE的方法如下:

进入项目Properties,

在左侧树形菜单中,选择Configuration Properties->General

在右侧Project Defaults下有Character Set选项,设为Not Set或Unicode。


在Unicode中, ASCII字符的表示方法是在ASCII前加一个'\0'字节,

这样,在X86体系中,由于采用小端表示法,如果使用cout输出Unicode字符,只会输出第一个ASCII字符。


即:

wchar_t *wchr = L"abc";
cout<<(char*)wchr<<endl;
wcout<<wchr<<endl;
会输出:

a
abc







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值