我们知道Visual Studio是可以设置字符集的,有多字节和Unicode两种选项。
那么Qt Creator可以吗?
答案是可以的,Qt Creator默认是使用Unicode字符集,这个从配置文件可以查看到,例如:
D:\Qt\Qt5.9.8\5.9.8\mingw53_32\mkspecs\win32-g++\qmake.conf
D:\Qt\Qt5.9.8\5.9.8\msvc2015\mkspecs\common\msvc-desktop.conf
都有定义
DEFINES += UNICODE _UNICODE WIN32
pro中添加:
DEFINES -= UNICODE
如果你在Qt工程中加入第三方库,编译出现如下问题:
error: C2664: “HMODULE GetModuleHandleW(LPCWSTR)”: 无法将参数 1 从“const char [11]”转换为“LPCWSTR”
error: C2664: “HINSTANCE LoadLibraryUTF8(LPCTSTR)”: 无法将参数 1 从“const char [12]”转换为“LPCTSTR”
error: C2664: “int GetClassNameW(HWND,LPWSTR,int)”: 无法将参数 2 从“char [1024]”转换为“LPWSTR”
error: C2664: “HWND CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM)”: 无法将参数 2 从“char *”转换为“LPCWSTR”
......此处省略N个类似错误......
那么上面的解决方法是最简单的。
如果还是不行,就这样
pro中添加:
DEFINES -= UNICODE _UNICODE
希望能帮到有缘人。
原创不易,转载请标明出处:Qt不使用unicode字符集_草上爬的博客-CSDN博客