win32 console unicode _tmain _TCHAR

来源:互联网 发布:工程设计费计算器软件 编辑:程序博客网 时间:2024/06/07 06:57

参考: 

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;
会输出:

aabc







原创粉丝点击