我正在使用mingw32,我无法找到LPCTSTR到LPCWSTR的类型定义。但同样在mingw64中定义如下。
typedef LPCWSTR PCTSTR,LPCTSTR;
但我的代码works fine in mingw32
没有任何错误,即使我在代码中添加了LPCTSTR
,如果我将编译器选项更改为mingw64,我会收到很多错误。
mntw32中的Winnt.h:
typedef TCHAR TBYTE,*PTCH,*PTBYTE;
typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;
typedef const TCHAR *LPCTSTR;
mingw64中的winnt.h:
typedef LPWSTR LPTCH,PTCH;
typedef LPWSTR PTSTR,LPTSTR;
typedef LPCWSTR PCTSTR,LPCTSTR;
typedef LPUWSTR PUTSTR,LPUTSTR;
typedef LPCUWSTR PCUTSTR,LPCUTSTR;
typedef LPWSTR LP;
如何解决这个问题?为什么我没有在mingw32中出现任何错误,定义了UNICODE?
答案 0 :(得分:2)
LPCTSTR
在mingw32中被定义为:
typedef const TCHAR *LPCTSTR;
定义UNICODE
后,TCHAR
会映射到WCHAR
,使LPCTSTR
等同于LPCWSTR
。
如果未定义UNICODE
,则TCHAR
会映射到CHAR
,而LPCTSTR
会等同于LPCSTR
。