#logo
PHOTO   GUESTBOOK

Totoal 2 article(s) about '关注领域/interest/Algorithm & Programming'

  1. New Album Project (AS3) 2009/07/02
  2. [vc++]让程序支持unicode 2008/04/10
前段时间突然有了想改相册(Click->Here to view)的想法,顺便学习下AS3。
于是这几天先把左册的XML树型菜单给改了。
这个AS3是NX啊,虽然上手很快,内置的类也非常强大,和AS2是没得比。
不过这东西内部结果还是要一个一个去熟悉,像继承、实现、子类和一些公共属性、公共方法、事件什么的。。。
费了好大功能,毕竟是新手...
最终花了几天工夫,用OO方法实现了原有菜单的功能(仅是菜单...)。
展示一下成果... 继续努力学习...

2009/07/02 01:16 2009/07/02 01:16
#fist posted at 2009/07/02 01:16
No Trackback, No Comment

老的AlloSoft的论坛数据没有恢复过来,先转一些文章到BLOG上。
Former Posted URL: http://www.allosoft.com/bB2/viewtopic.php?f=6&t=41
Posted: 2005-04-10 16:01:32
by #fist
***************************************************************

最近尝试着在NT内核的系统下的Unicode编程(可支持多语言)。
打算把一些尝试性的经验陆续的整理出来。
以后的编程打算不考98的环境了,连M$自己都放弃了,估计再过两年98也不会太多吧...个人猜侧。

因为NT系统的内核是unicode,一般情况下通过VC创建的工程默认都是ansi代码(可以兼容win9x),在NT下ansi代码在调用windows API的时系统实际又进行了一次ansi到unicode的代码转化。所以如果程序不考虑win9x(早晚是明日黄花)的话,直接用unicode编译,那么代码的执行效率一定能提升不少,而且又可以支持多语言。
因为在VC中默认代码是以ASNI的,所以Unicode的编译还需要动动一些环境设置。
具体如下,

1、在vc编译选项上,在vc7.0以上在工程的属性页中的“字符集”选上"使用 Unicode 字符集"即可,在vc6.0下可能麻烦一点,得先把vc运行库的unicode版本复制到vc路径下,一般都是和xxx.lib的ansi对应xxxU.lib,默认装vc时是不会装的。
2、设置工程属性
1) 改语言定义:
在project settings的"C++"页中的"preprocessor definitions"中改_MBCS为_UNICODE
2) 改入口函数:
在"link"页中的"project Options"加入/entry:"wWinMainCRTStartup"即可.
3、宏的使用
在代码上,处理字符中的多用TCHAR.H中的宏,如strcpy用_tcscpy代替,用TCHAR代char,用TCHAR m_mystr[]=_T("xxxx")代替 char m_mystr[]="xxxx";
4、注意调试UNICODE程序时,需要在安装时VC选择所有选项,否则会缺少动态库和相应的.lib文件


经过上述设置的代码编写的过程以后,编译出来的程序就可以在不同的语言系统中都可以支持多种语言了。
如下图,我的系统是中文简体的,经过Unicode编译后,可以支持韩文了。



当然除了这些还有很多地方与一般ANSI的编写不同,
如,
SPRINTF->SWPRINTF,
LPSTR->LPCWSTR

详细的就不一一列出了。

其他补充:
还有一点就是我自己经尝范错误的,就是将Debug和Release的环境设置统一。
我自己经常会忘记把Release的环境设置与Debug的设置保持一致,所以经常出现Debug可以编译通过,Release时通不过的情况。

如果程序定义了_UNICODE宏直接用
WCHAR *str=L"unicodestring";
TextOut(0,0,str);

否则需要转换类型
#include <comdef.h>
WCHAR *str=L"unicodestring";
bstr_t str1=str;
TextOut(0,0,(char*)str1);
2008/04/10 01:01 2008/04/10 01:01
Tags for this entry
, , ,
#fist posted at 2008/04/10 01:01
No Trackback, No Comment