2011-04-20 197 views
10

我想编译一个我很久以前使用VS express 2005的代码。 代码需要windows.h,它不是VS 2005的一部分,我发现我需要安装平台SDK。 但我无法找到Windows XP的平台SDK。我在哪里可以下载这个平台SDK? 我在哪里可以找到windows.h?哪里可以下载windows xp platform SDK?

回答

14

下载为ISO你并不需要找到适用于Windows XP的SDK。 Windows SDK的每个版本都以最新版本的Windows以及以前的几个版本为目标。您应该始终安装最新版本的SDK,除非您的目标是旧版本的操作系统的极其。在这一点上,Windows XP还不算太多(还)。

您只需确保在编译项目时设置适当的目标版本。以适用于Windows XP,你应该简单地定义WINVER到0x0501版本,像这样:

#define WINVER 0x0501 

您可以找到有关使用头here针对特定版本的Windows的更多信息。

,你可以下载最新的SDK在这里:http://msdn.microsoft.com/en-us/windows/bb980924

-1

Visual Studio速成 - 所有版本,包括2005 - 安装必要的平台SDK文件来构建窗户的目标。

如果项目向导(即#include <windows.h>)生成的项目不起作用,您会以某种方式损坏安装。

+3

我很确定2005 Express版本不包含平台SDK;我特别记得必须将它追回并单独安装时(例如http:// msdn.microsoft.com/en-us/library/ms235626%28v=vs.80%29.aspx)。看起来像但是,在2008 Express版本中集成了Platform SDK。 – Luke 2011-04-21 01:47:55

0

如果您使用的是C++,则可以使用以下代码行来始终锁定windows xp - windows 10。

/** 
* Copyright (c) 2014 - 2016, Dark Edge Studios, All Rights Reserved. 
* 
* Authors 
* - Daniel I. Dorn <[email protected]> 
* 
* The following code example is under the terms of the ZLIB/LIB PNG 
* License please only use as license permits. 
*/ 

#ifndef YourIncludeGaurds 
#define YourIncludeGaurds 

/* Check if Windows */ 
#if defined(_WIN32) || _WIN64 

    /* sdkddk Header File */ 
    #include <sdkddkver.h> 

    /** 
     * Windows XP 
     */ 
    #if defined(_WIN32_WINNT) && NTDDI_VERSION == 0x05010000 

    #endif /* Windows XP */ 

    /** 
     * Windows Vista 
     */ 
    #if defined(_WIN32_WINNT) && NTDDI_VERSION == 0x06000000 

    #endif /* Windows Vista */ 

    /** 
     * Windows 7 
     */ 
    #if defined(_WIN32_WINNT) && NTDDI_VERSION == 0x06010000 

    #endif /* Windows 7 */ 

    /** 
     * Windows 8 
     */ 
    #if defined(_WIN32_WINNT) && NTDDI_VERSION == 0x06020000 

    #endif /* Windows 8 */ 

    /** 
     * Windows 8.1 
     */ 
    #if defined(_WIN32_WINNT) && NTDDI_VERSION == 0x06030000 

    #endif /* Windows 8.1 */ 

    /** 
     * Windows 10 
     */ 
    #if defined(_WIN32_WINNT) && NTDDI_VERSION == 0x0A000000 

    #endif /* Windows 10 */ 

#endif /* Windows */ 

#endif /* YourIncludeGaurds */ 

希望这有助于解释一些东西(=

2

万一有人真的需要一个旧的SDK,这里有一个从2003年二月:

http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.1.cab 
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.2.cab 
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.3.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.4.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.5.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.6.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.7.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.8.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.9.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.10.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.11.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.12.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.13.cab  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/PSDK-FULL.bat  
http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/FULL/extract.exe