在windows编程中,经常要编译unicode版本的程序,方法是工程文件的配置中加上unicode或者_unicode编译条件,那么到底是用哪一个呢?
jeffrey richter在《windows核心编程》中说,_unicode宏用于c运行期头文件,而unicode宏则用于windows头文件.当编译源代码模块时,通常必须同时定义这两个宏.究竟是怎么样的呢?
我在mfc的头文件中搜了一下,在afxv_w32.h文件中找到这样一段代码:
#ifdef _unicode
#ifndef unicode
#define unicode
#endif
#endif
#ifdef unicode
#ifndef _unicode
#define _unicode
#endif
#endif
所以,在mfc程序中,只要设置了两个中其中一个就可以了.
但是对于sdk程序,我在头文件搜索中,发现出现次数最多的是unicode, _unicode仅仅在少数几个文件中,并且互相定义的地方也不多,所以写sdk程序,如果要编译成unicode程序,只要设置unicode宏就可以了