我有一个 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/