前言
昨天为了编译一个网上下载程序,下载vs2008,转换工程并加入自己的部分程序,最后还是运行不了。郁闷之余,查看错误,发现原来自己的代码有问题。比如vs2008不再支持之类的。还有就是我的代码没有“国际化”意识(从不考虑Unicode)。所以下定决心学一下unicode,结果还是令自己满意的。以下分享一些心得(哈哈,大部分网上找的),望对你有用。
推荐2个实用的小工具,为字符串添加_T()宏
http://hi.baidu.com/qiujiejia/blog/item/46057f2bacf7abeae7cd407b
http://hi.baidu.com/qiujiejia/blog/item/4af2261bbeba5deaaf5133bf
1.让工程支持unicode编译
*
这里先解释一下使用unicode的原因:如果要让你的软件支持多国语言,也就是国际化吧,比如东亚语系cjk(中日韩),由于这些国家语言的每个字符都是以宽字符(wide character即两个字节)表示的,而unicode字符集(unicode character set)是一个宽字符集,所以自然的使用unicode就顺理成章了。
下面就说一下如何在vc6中进行unicode编译
*
写的一段代码涉及到MBCS编码和UNICODE编码的相互转换,查了一下MSDN的相关资料,在VC6中,默认使用MBCS编码,即多字节字符,实际就是支持大于0x80的ASCII码。这样,一个中文字可以表示为2个字节,GB2312就是这样表示的。
VC6的默认安装是不带UNICODE库的,要在VC6中写UNICODE程序,必须安装CRT和MFC的Unicode库。
要使你的程序支持Unicode,要在你的项目属性中去掉"_MBCS"宏定义,增加"UNICODE"和"_UNICODE"两个宏定义。(注意,这两个都应该加上,因为CRT和MFC使用UNICODE 定义,而STL则使用_UNICODE)
如果你的程序是MFC的,则Unicode版MFC库的入口点是 wWinMainCRTStartup。
很好的文章,大家可以看看,
*
为 vc 工程添加 Unicode Debug 和 Unicode Release
通过使用unicode编译,软件可以适应多种情况,如何在自己的工程中添加这两种编译方式呢?下面是一个简单的步骤
1、新建一个工程;
2、选择“Build->Configurations”菜单
3、(1)点击“Add”按钮,添加“Unicode Debug”-拷贝“win32 Debug”配置
(2)添加“Unicode Release”-拷贝“win32 Release”配置 ,然后点击“OK”
4、选择“Project->Setting”菜单
(1)选 Win32 Unicode Debug :
切换到“c/C++ ” Tab页 从下拉列表框中选择 “Preprocessor” ,去掉_MBCS,添加UNICODE,_UNICODE(注意逗号隔开) ,如果是MFC程序,还要在
link中,Category选output,将Entry-Point Symbol设为wWinMainCRTStartup
(2)选 Win32 Unicode Release
切换到“c/C++ ”Tab页 从下拉列表框中选择 “Preprocessor” ,去掉_MBCS,添加UNICODE,_UNICODE(注意逗号隔开) ,如果是MFC程序,还要在
link中,Category选output,将Entry-Point Symbol设为wWinMainCRTStartup
原文地址:http://blog.sina.com.cn/s/blog_8a7012cf0101dy7w.html