c - winnt.h 中的 Mingw32 中未定义 LPCTSTR 到 LPWSTR 的转换

标签 c winapi mingw mingw32

我使用的是 mingw32,我无法找到 LPCTSTR 到 LPCWSTR 的类型定义。但 mingw64 中的定义相同,如下所示。

typedef LPCWSTR PCTSTR,LPCTSTR;

但是我的代码在 mingw32 中工作正常,即使我在代码中添加了 LPCTSTR 也没有任何错误,如果我将编译器选项更改为 mingw64,我会收到很多错误.

mingw32 中的 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;

如何解决这个问题?为什么我在定义了 UNICODE 的 mingw32 中没有收到任何错误?

最佳答案

LPCTSTR 在 mingw32 中定义为:

typedef const TCHAR *LPCTSTR;

定义 UNICODE 时,TCHAR 映射到 WCHAR,使 LPCTSTR 等同于 LPCWSTR.

当未定义 UNICODE 时,TCHAR 会映射到 CHAR,从而使 LPCTSTR 等同于 LPCSTR

关于c - winnt.h 中的 Mingw32 中未定义 LPCTSTR 到 LPWSTR 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989048/

相关文章:

c - 为什么 linux 线程函数在 windows 中工作?

c - 如何使用 terminfo 在终端中设置颜色

c++ - C/C++ 通用控件检测 TVItem 的双击

c++ - 是否有 C++11 或 Win32 方法来可靠地生成和保存跟踪信息?

c++ - 在命令行中正确链接库

C 将指针传递给指向函数的指针并使用 malloc

c - 死 C 变量

c++ - 编辑控件中的可点击链接

C++ 编译错误,std 中的互斥量未命名 MinGW (GCC 6.3.0) 中的类型

C(在 win32 上): How to fix value of daylight greater than 1?