一. 确保vc支持unicode编程
对普通win32程序,vc是支持unicode的。
对MFC程序,还需要MFC42UD相关文件。如果没有的话会报cannot open file "mfc42ud.lib" unresolved external symbol _WinMain@16错误。MFC42UD文件可在网上搜到。
二. 设置工程为unicode类型
(1) setting->C/C++->Preprocessor definitions
把_MBCS改为_UNICODE,UNICODE.
(2) 如果是MFC程序,则还需要setting->Link->Category 选择Output, 在Entry point里面输入wWinMainCRTStartup。
(3)如果是普通的win32程序,默认生成的WinMain函数是
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow),
可以看出,它参数是不支持UNICODE的,要支持UNICODE,则改为
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
同时,也需要在Entry point里面输入wWinMainCRTStartup。
(4)如果是普通的win32动态库,则默认的生成函数是
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
从参数可以看出,它没有UNICODE非UNICODE之分,所以不用考虑UNICODE,同时,也不需要设置wWinMainCRTStartup
接下来就是在编码中注意使用支持Unicode的函数了。。