c++ - 每当包含 windows.h 时都会出现大量编译错误,我的环境是 visual studio 2013 in win 7

标签 c++ visual-studio-2013 compiler-errors windows-7

我有一个 CPP 文件 Log.cpp,它只有一行代码:

    #include "windows.h"

当我编译它时,大量的语法错误显示:

    1>------ Build started: Project: topx, Configuration: Debug Win32 ------
    1>  Log.cpp
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(936): error C2065: 'hMem' : undeclared identifier
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(936): error C2065: 'dwBytes' : undeclared identifier
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(938): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(938): error C2491: '_Ret_reallocated_bytes_' : definition of dllimport data not allowed
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(938): error C2078: too many initializers
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(938): error C2146: syntax error : missing ';' before identifier 'HGLOBAL'
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(938): error C2143: syntax error : missing ';' before '__stdcall'
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(938): error C2377: 'HGLOBAL' : redefinition; typedef cannot be overloaded with any other symbol
    1>          c:\program files (x86)\windows kits\8.0\include\shared\minwindef.h(211) : see declaration of 'HGLOBAL'
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(940): error C2146: syntax error : missing ')' before identifier 'hMem'
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(940): warning C4229: anachronism used : modifiers on data are ignored
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(940): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files (x86)\windows kits\8.1\include\um\winbase.h(943): error C2059: syntax error : ')'
    ....
    ....   

但是在windows 8下编译一切正常,请问是什么问题?

最佳答案

更改自:

C:\Program Files (x86)\Windows Kits\8.0\Include\shared

C:\Program Files (x86)\Windows Kits\8.1\Include\shared

在项目的“Additional include directories”中解决了这个问题,但我不知道为什么。

关于c++ - 每当包含 windows.h 时都会出现大量编译错误,我的环境是 visual studio 2013 in win 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26483953/

相关文章:

c++ - 检查字符串中每个字符的类型

c++ - 抽象类输出问题

c++ - mathGl/MinGW 未定义引用 Netbeans IDE

c# - 在 Debug模式下,有没有办法在任何地方中断(暂停执行)?

java - 为什么使用基类作为方法引用会导致编译器错误

Java编译报错找不到接口(interface)的符号

c++ - 在不提供定义的情况下覆盖函数有什么意义?

c++ - 生成由字母和数字组成的随机单词

c# - GeneratedInternalTypeHelper.g.i.cs 的目的是什么?

C++ 将浮点值转换为枚举 - 但不是 VS 2010