C++ Microsoft SDK版本
我得到的错误是:C++ Microsoft SDK版本,c++,visual-studio-2010,winapi,C++,Visual Studio 2010,Winapi,我得到的错误是: #if defined( _WIN32 ) #ifndef WIN32 #error error // error calls here #endif 我在MS VS2008中编写了一个运行良好的程序,但是当我在MS VS2010中传输并编译它时,我会遇到一系列错误 我包括的一些头文件和库如下: #include stdlib.h #include stdio.h #include stdlib.h #include io.h #include
#if defined( _WIN32 )
#ifndef WIN32
#error error // error calls here
#endif
我在MS VS2008中编写了一个运行良好的程序,但是当我在MS VS2010中传输并编译它时,我会遇到一系列错误
我包括的一些头文件和库如下:
#include stdlib.h
#include stdio.h
#include stdlib.h
#include io.h
#include math.h
#include mmsystem.h
#include iostream
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "odbc32.lib")
#pragma comment(lib, "odbccp32.lib")
现在,我想问题是这个。在VS2008中,当我右键单击mmsystem.h并说“打开包含文件夹”时,它会指向:C:\ProgramFiles(x86)\Microsoft SDK\Windows\v6.0A\Include
而在VS2010中,当我这样做时,它指向:C:\ProgramFiles(x86)\Microsoft SDK\Windows\v7.0A\Include
v6.0A\Include
而不是v7.0A\Include
谢谢< p>可以更改Project属性中的Project的包含文件夹路径,但最可能的错误不是来自包含的头,而是因为VisualStudio 2010中C++编译器已经对以前不认为错误的某些编码风格进行了更严格的修改。 在大多数情况下,新编译器虽然更加严格,但会迫使您编写更好的代码 但是,可以肯定的是,您可以发布您得到的特定编译时错误吗
这里有一个链接,如果你想这样做的话,它也可能对你有用。我终于找到了答案。在properties->C/C++->Preprocessor->Preprocessor Definitions AddWin32中,有哪些错误?没有人能帮助你,除非你清楚地说出发生了什么。否则,你只是在说,“我的程序无法编译”。6.0和7.0只是SDK的版本,VS2010显然附带了一个更新的版本。除非有很好的理由,否则您可能不应该强迫它使用旧的。感谢您发布错误,但我在任何v7.0a标题中都看不到该代码。它在你自己的代码中吗?如果是,这意味着您的代码依赖于定义的WIN32(不带下划线)。我想这已经不是默认的定义了。为什么不直接将它添加到项目定义中,或者添加代码块,但在预编译头/项目头的顶部添加一个
#define WIN32
而不是#错误,或者修改代码以改用#u WIN32呢,为什么不在include中使用
s?我不认为可以在include文件夹路径中更改Microsoft SDK。我的包含文件夹路径当前为空。此外,我非常确定这与编码标准无关,例如:“如果定义了(_WIN32)#如果定义了WIN32#错误。#endif'给了我一个错误,而在VS2008中不是。你应该在VC++目录选项卡页面下查看你的项目属性。关于您所说的#如果定义了,您是否可以编辑问题并发布给出错误的代码示例?目录将作为$(WindowsSdkDir)Include
显示在您的设置中。但WindowsSdkDir值由平台工具集选项设置-请参见C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v100\Microsoft.Cpp.Win32.v100.props(或\Platforms\x64)。我认为你真的应该理解并修复你的错误。_Win32vs WIN32-你是从2008年升级了项目文件还是创建了新项目?您是依赖代码中的这些定义,还是仅仅依赖头文件?我只是添加了项目文件(cpp和h),没有升级。