VS2015 error C2146: 语法错误: 缺少“;”等在winnt.h中的错误(常见的方法都无法解决的时候)

*错误问题

VS2015 error C2146: 语法错误: 缺少“;”等在winnt.h中的错误(常见的方法都无法解决的时候)_第1张图片

解决方法

Solution 1.
工具->选项->项目和解决方案->vc++目录
试试调换一下include包含目录以及包含库的次序

Solution 2.
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
在它之前加下:
#define POINTER_64 __ptr64

Solution 3
在stdafx.h头文件前面中加入以下代码
#ifndef POINTER_64

#if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED))
#define POINTER_64 __ptr64
typedef unsigned __int64 POINTER_64_INT;
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif
#else
#if defined(_MAC) && defined(_MAC_INT_64)
#define POINTER_64 __ptr64
typedef unsigned __int64 POINTER_64_INT;
#else
#if (_MSC_VER >= 1300) && !(defined(MIDL_PASS) || defined(RC_INVOKED))
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif
typedef unsigned long POINTER_64_INT;
#endif
#define POINTER_32
#endif
#endif

重点:Solution 4

如果以上方法都没用,在VS2015的x64的环境下,我们使用最后得绝招,注释掉两行错误代码
在这里插入图片描述在这里插入图片描述
成功解决!
VS2015 error C2146: 语法错误: 缺少“;”等在winnt.h中的错误(常见的方法都无法解决的时候)_第2张图片

你可能感兴趣的:(C++)