一个程序或控件,如果想要有更大的市场,国际化是一种必然的趋势。要使软件国际化,其编码必须支持多语,否则有可能在你的程序中,仅在某个版本的操作系统底下好用,而在另外的操作系统中却是乱码。VC对多语的支持相对于VB来说还是简单了很多,其自身提供了支持多语的机制。在实际工作中,在VC中进行多语化编译,我总结出以下一些要点:
1、首先应该预编译指令中定义UNICODE或_UNICODE,使用了这个预编译指令,在使用WindowsAPI时,系统就会自动使用W版的API函数及结构
2、声明字符串必须用TCHAR,而不能用char
3、对于字符串操作的相关函数处理,如strcpy用wcscpy的代替等等
4、所有的字符串值,必须加上宏_T()
5、如果在程序中使用了STL,必须使用必须使用其w版的函数及类型,比如string就得用wstring来代替,在我的程序中,使用了如下预编译指令:
#ifdef _UNICODE
#define tstring wstring
#else
#define tstring string
#endif
这样在程序中用tstring来声明字符串。所有与string相关的函数都必须作这这样的处理。比如stringstream、ostream等等。
关于编码的问题请参考下面文章:
http://dev.csdn.net/develop/article/72/72002.shtm