Windows SDK’sı

Windows 11, sürüm 22H2 için Windows SDK 'sı (10.0.22621), Windows uygulamaları oluşturmaya yönelik en son üst bilgileri, kitaplıkları, meta verileri ve araçları sağlar. Windows 11, sürüm 22H2 ve önceki Windows sürümleri için Evrensel Windows Platformu (UWP) ve Win32 uygulamaları oluşturmak için bu SDK'yı kullanın.

İpucu

Windows Uygulama SDK’sı
Windows Uygulama SDK'sı, işletim sisteminden ayrılmış ve NuGet paketleri aracılığıyla geliştiricilere sunulan birleşik bir API'ler ve araçlar kümesi sağlar. Bu API'ler ve araçlar, Windows 11 ve alt düzey ile Windows 10, sürüm 1809 arasında herhangi bir masaüstü uygulaması tarafından tutarlı bir şekilde kullanılabilir.

Başlarken

Windows SDK'sını iki şekilde alabilirsiniz: İndirme bağlantısını seçerek veya Visual Studio 2022 Yükleyicisi'nin isteğe bağlı bileşenlerinde "Windows 11 SDK (10.0.22621.0)" öğesini seçerek bu sayfadan yükleyin. Bu SDK'yi yüklemeden önce:

Son güncelleştirme: 4 Ekim 2021

Sistem Gereksinimleri

Windows SDK'sı aşağıdaki en düşük sistem gereksinimlerine sahiptir:

Desteklenen işletim sistemleri

  • Windows 10 sürüm 1507 veya üzeri: Home, Professional, Education ve Enterprise (UWP için LTSB ve S desteklenmez)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 ve Windows Server 2012 R2 (Yalnızca Komut satırı)
  • Windows 8.1
  • Windows 7 SP1

(Önceki işletim sistemlerinde tüm araçlar desteklenmez)

Donanım gereksinimleri

  • 1,6 GHz veya daha hızlı işlemci
  • 1 GB RAM
  • 4 GB kullanılabilir sabit disk alanı

Ek SDK gereksinimleri

Windows 8.1 ve önceki işletim sistemlerine yükleme için Windows'da Evrensel C Çalışma Zamanı Güncelleştirmesi gerekir. Windows Update aracılığıyla yüklemek için, Windows SDK'sını yüklemeden önce Microsoft Update'ten en son önerilen güncelleştirmeleri ve düzeltme eklerini yüklediğinizden emin olun.

Örnekler

Windows uygulama örnekleri artık GitHub aracılığıyla kullanılabilir. GitHub koduna göz atabilir, Git'ten deponun kişisel bir kopyasını kopyalayabilir veya tüm örneklerin sıkıştırılmış arşivini indirebilirsiniz. Geri bildirimleri memnuniyetle karşılıyoruz, bu nedenle bir sorununuz veya sorunuz varsa depoda bir sorun açmaktan çekinmeyin. Bu örnekler, Evrensel Windows Platformu (UWP) destekleyen masaüstü, mobil ve gelecekteki cihazlarda çalışacak şekilde tasarlanmıştır.

Önceki SDK sürümleri

Güncelleştirme ayrıntıları da dahil olmak üzere daha önce yayımlanan SDK'lar ve öykünücüler arşiv sayfasında bulunabilir.

API Light Up

Yeni API'leri kullanırken uygulamanızı uyarlamalı olacak şekilde yazarak en geniş Windows cihaz dizisinde düzgün çalışmasını sağlayın. Uyarlamalı bir uygulama, cihazların ve Windows sürümünün desteklediği her yerde yeni özelliklerle "yanar", ancak aksi takdirde yalnızca algılanan platform sürümünde kullanılabilir işlevselliği sunar. Uygulama ayrıntıları için Sürüm uyarlamalı kod makalesine bakın.

Sürüm notları ve bilinen sorunlar

Windows 10 SDK, Sürüm 2104
  • api-ms-win-net-isolation-l1-1-0.lib kaldırıldı. api-ms-win-net-isolation-l1-1-0.lib ile bağlantı oluşturan uygulamalar, yerine OneCoreUAP.lib olarak geçiş yapabilir.

  • irprops.lib kaldırıldı. irprops.lib'e karşı bağlantı oluşturan uygulamalar, açılan menü yerine bthprops.lib dosyasına geçebilir.

  • ENUM tagServerSelection wuapicommon.h dosyasından wupai.h dosyasına taşındı ve üst bilgiyi kaldırdı. ENUM etiketiniServerSelection kullanmak isterseniz wuapi.h veya wuapi.idl eklemeniz gerekir.

  • Windows 10 WinRT API Paketi, .NET Framework 4.5+ ve .NET Core 3.0+ kitaplıklarınıza ve uygulamalarınıza en son Windows Çalışma Zamanı API'leri desteği eklemenize olanak tanır. Windows 10 WinRT API Paketi'ne erişmek için bkz. Microsoft.Windows. SDK. Anlaşmalar nuget paketi.

  • Printf işlev ailesi artık tam olarak temsil edilebilir kayan noktalı sayılar yazdırılırken IEEE 754 yuvarlama kurallarına uyar ve fesetround çağrıları aracılığıyla istenen yuvarlama moduna uyar. eski davranış, legacy_stdio_float_rounding.obj ile bağlantı oluşturulurken kullanılabilir.

  • Uygulama Sertifikasyon Seti'ni Windows. Uygulama Sertifikasyon Seti ve Windows Store'daki Desteklenen API'ler listesine birkaç yeni API eklendi. Desteklenen listede Visual Studio gri veya devre dışı görünen API'ler varsa, bunlara erişmek için kaynak dosyanızda küçük bir değişiklik yapabilirsiniz. Diğer ayrıntılar için bu bilinen soruna bakın. Testlerde daha fazla güncelleştirme bulun.

  • İleti Derleyicisi (mc.exe) güncelleştirmeleri:

    • Şimdi .mc dosyalarında Unicode bayt sırası işaretini (BOM) algılar. .mc dosyası UTF-8 BOM ile başlıyorsa, utf-8 dosyası olarak okunur. Aksi takdirde, bir UTF-16LE BOM ile başlarsa, UTF-16LE dosyası olarak okunur. -u parametresi belirtildiyse, UTF-16LE dosyası olarak okunur. Aksi takdirde, geçerli kod sayfası (CP_ACP) kullanılarak okunur.
    • Artık MC tarafından oluşturulan C/C++ ETW yardımcılarında çakışan yapılandırma makrolarının neden olduğu tek tanım kuralı (ODR) sorunlarından kaçınıyor (örneğin, çakışan MCGEN_EVENTWRITETRANSFER tanımlarına sahip iki .cpp dosyası aynı ikili dosyaya bağlandığında, MC tarafından oluşturulan ETW yardımcıları artık rastgele birini veya diğerini seçmek yerine her .cpp dosyasındaki MCGEN_EVENTWRITETRANSFER tanımına saygı gösterecektir.
  • önişlemci (tracewpp.exe) güncelleştirmelerini Windows:

    • Unicode giriş (.ini, .tpl ve kaynak kodu) dosyalarını destekler. UTF-8 veya UTF-16 bayt sipariş işaretiyle (BOM) başlayan giriş dosyaları Unicode olarak okunur. Ürün reçetesiyle başlamayan giriş dosyaları geçerli kod sayfası (CP_ACP) kullanılarak okunur. Geriye dönük uyumluluk için -UnicodeIgnore komut satırı parametresi belirtilirse UTF-16 BOM ile başlayan dosyalar boş olarak kabul edilir.
    • Unicode çıkış (.tmh) dosyalarını destekler. Varsayılan olarak, çıkış dosyaları geçerli kod sayfası (CP_ACP) kullanılarak kodlanır. Unicode çıkış dosyaları oluşturmak için -cp:UTF-8 veya -cp:UTF-16 komut satırı parametrelerini kullanın.
    • Davranış değişikliği: tracewpp artık tüm giriş metnini Unicode'a dönüştürür, Unicode olarak işleme gerçekleştirir ve çıkış metnini belirtilen çıkış kodlamasına dönüştürür. tracewpp'nin önceki sürümleri Unicode dönüştürmelerinden kaçınmıştı ve tek baytlık bir karakter kümesi varsayılarak metin işleme gerçekleştirildi. Bu, giriş dosyalarının geçerli kod sayfasına uymadığı durumlarda davranış değişikliklerine yol açabilir. Bunun bir sorun olduğu durumlarda, kodlama belirsizliğini önlemek için giriş dosyalarını UTF-8'e (BOM ile) dönüştürmeyi ve/veya -cp:UTF-8 komut satırı parametresini kullanmayı göz önünde bulundurun.
  • TraceLoggingProvider.h güncelleştirmeleri:

    • Çakışan yapılandırma makrolarının neden olduğu tek tanım kuralı (ODR) sorunlarını önler (örneğin, çakışan TLG_EVENT_WRITE_TRANSFER tanımlarına sahip iki .cpp dosyası aynı ikili dosyaya bağlandığında, TraceLoggingProvider.h yardımcıları artık rastgele birini veya diğerini seçmek yerine her .cpp dosyasındaki TLG_EVENT_WRITE_TRANSFER tanımına saygı duyar.
    • C++ kodunda TraceLoggingWrite makro, variadic şablonları kullanılarak benzer olaylar arasında daha iyi kod paylaşımı sağlayacak şekilde güncelleştirildi.
  • Uygulamalarınızı imzalama. Device Guard imzalama, kuruluşların her uygulamanın güvenilir bir kaynaktan geldiğinden emin olmasını sağlayan İş İçin Microsoft Store ve Eğitim'de kullanılabilen bir Device Guard özelliğidir. Device Guard İmzalama hakkındaki belgelere bakın.

  • SDK üst bilgileri, MSVC derleyici cl.exe (/Zc:preprocessor, VS 2019 v16.6 ile sunulan) standart uyumlu C ön işlemcisi kullanılarak derlenirken oluşan hataları gidermek için güncelleştirildi.

  • Düzeltildi: "GdiplusTypes.h NOMINMAX ile derlenmiyor". Bkz. geri bildirim Visual Studio.

  • /std:c11 veya /std:c17 ile derleme yaparken şunları elde edersiniz:

    • C99 tgmath.h
    • assert.h dosyasında C11 static_assert
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • ARM64'ü hedefleyen Windows v11 için Clang/LLVM, en son winnt.h ile uyumlu değil

    • Geçici çözüm olarak ARM64 platformlarını hedeflerken Windows 10 SDK'sının önceki sürümünü (derleme 19041) veya Windows v10 için clang/LLVM'yi kullanın
  • DirectXMath (bu sürümdeki sürüm 3.16 dahil) ARM64'teki Windows için Clang/LLVM ile uyumlu değildir.

  • Bazı üst bilgi dosyalarını büyük/küçük harfe duyarlı dosya sistemleri için normalleştirmek üzere değiştirildi:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h ve OleCtl.h küçük harfle yapılmıştır.
    • Windows derlemeler için Clang/LLVM için, uyarı olmadan hem eski sürümü hem de en son Windows 10 SDK'yı desteklemek için CLI'ya veya kaynakta aşağıdaki #pragma ekleyin-Wno-nonportable-system-include-path:

    #ifdef __clang__

    #pragma clang diagnostic ignored "-Wnonportable-system-include-path"

    #endif

Windows 10 SDK, Sürüm 2004 bakım güncelleştirmesi (16.12.2020'de yayımlandı)

Bu sürüm aşağıdaki dosyaları içerir. Bu sorunlarla karşılaşırsanız, bunlardan kaçınmak için SDK sürümünüzü en kısa sürede güncelleştirmenizi öneririz:

  • Hem şemsiye kitaplıkları hem de yerel işletim sistemi kitaplıklarını (örneğin, onecoreuap.lib ve kernel32.lib) bağlarken öngörülemeyen ve tanılaması zor kilitlenmeler düzeltildi
  • AppVerifier'ın çalışmasını engelleyen sorun çözüldü
  • WACK'nin "Görev HighVersionLie'yi etkinleştiremedi" hatasıyla başarısız olmasına neden olan sorun çözüldü

Diğer kaynaklar