2011-04-20 195 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