Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Microsoft SDK版本_C++_Visual Studio 2010_Winapi - Fatal编程技术网

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

  • 这可能是错误的来源吗
  • 如何让VS2010指向
    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),没有升级。