Windows SDK

ערכת ה- SDK של Windows (10.0.22621) עבור Windows 11, גירסה 22H2 מספקת את הכותרות, הספריות, המטה-נתונים וכלים העדכניים ביותר לבניית יישומי Windows. השתמש ב- SDK זה כדי לבנות פלטפורמה אוניברסלית של Windows (UWP) ו- Win32 עבור Windows 11, גירסה 22H2 ומהדורות קודמות של Windows.

עצה

Windows App SDK
תוכנית SDK לאפליקציות ב-Windows מספקת ערכה מאוחדת של ממשקי API וכלים המפענחים ממערכת ההפעלה ומופצים למפתחים באמצעות חבילות NuGet. ממשקי API וכלים אלה יכולים לשמש באופן עקבי על-ידי כל יישום שולחן עבודה ב- Windows 11 וברמה Windows 10, גירסה 1809.

תחילת העבודה

באפשרותך לקבל את ערכת ה- SDK של Windows בשתי דרכים: להתקין אותה בדף זה על-ידי בחירת קישור ההורדה או על-ידי בחירה באפשרות "Windows 11 SDK (10.0.22621.0)" ברכיבים האופציונליים של Visual Studio 2022 Installer. לפני התקנת SDK זה:

עדכון אחרון: 4 באוקטובר 2021

דרישות המערכת

ל- SDK של Windows יש את דרישות המערכת המינימליות הבאות:

מערכות הפעלה נתמכות

  • Windows 10 גירסה 1507 ואילך: Home, Professional, Education ו- Enterprise (LTSB ו- S אינם נתמכים עבור UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 ו- Windows Server 2012 R2 (שורת פקודה בלבד)
  • Windows 8.1
  • Windows 7 SP1

(לא כל הכלים נתמכים במערכות הפעלה קודמות)

דרישות חומרה

  • מעבד 1.6 GHz ומעלה
  • 1 GB של RAM
  • שטח דיסק קשיח זמין של 4 GB

דרישות SDK נוספות

התקנה ב Windows 8.1 ובמערכות הפעלה קודמות דורשת עדכון עבור זמן ריצה אוניברסלי C ב- Windows. כדי להתקין באמצעות Windows Update, הקפד להתקין את העדכונים והתיקונים המומלצים האחרונים מ- Microsoft Update לפני התקנת ערכת ה- SDK של Windows.

דוגמאות

דוגמאות של אפליקציית Windows זמינות כעת באמצעות GitHub. באפשרותך לעיין בקוד ב- GitHub, לשכפל עותק אישי של המאגר מ- Git או להוריד ארכיון מכווצ של כל הדוגמאות. נשמח לקבל ממך משוב, לכן אתה מוזמן לפתוח בעיה במאגר אם יש לך בעיה או שאלה. דוגמאות אלה מיועדות לפעול במחשב שולחני, במכשירים ניידים ובמכשירים עתידיים התומכים פלטפורמה אוניברסלית של Windows (UWP).

גירסאות SDK קודמות

ניתן למצוא רשימת SDK ומדמה שהופצו בעבר, כולל פרטי עדכון, בדף הארכיון.

API בהיר למעלה

בעת שימוש בממשקי API חדשים, שקול לכתוב את האפליקציה שלך כך שהיא תפעל כראוי במערך הרחב ביותר של מכשירי Windows. אפליקציה גמישה "דולקת" עם תכונות חדשות בכל מקום שבו המכשירים וגירסת Windows תומכים בהם, אך אחרת היא מציעה רק את הפונקציונליות הזמינה בגירסת הפלטפורמה שזוהתה. לקבלת פרטי יישום, עיין במאמר קוד מסתגל של גירסה.

הערות מוצר ובעיות ידועות

Windows SDK for Windows 11, version 22H2
  • עדכון שירות 10.0.22621.755. כולל תמיכת ARM64 עבור מהדורת VS 17.4
Windows 10 SDK, גירסה 2104
  • api-ms-win-net-isolation-l1-1-0.lib הוסר. אפליקציות שהיו מקשרות אל api-ms-win-net-isolation-l1-1-0.lib יכולות להחליף את OneCoreUAP.lib כתחליף.

  • הסרתי את irprops.lib. אפליקציות שקשרו ל- irprops.lib יכולות לעבור ל- bthprops.lib כתחליף לפריט חלופי.

  • העברת תג ENUMServerSelection מ- wuapicommon.h אל wupai.h והוסרה הכותרת העליונה. אם ברצונך להשתמש בתג ENUMServerSelection, תצטרך לכלול את wuapi.h או wuapi.idl.

  • ערכת ה- API של Windows 10 WinRT מאפשרת לך להוסיף את התמיכה העדכנית ביותר בממשקי API של Windows Runtime .NET Framework 4.5+ ו- .NET Core 3.0+ ואפליקציות. כדי לגשת לערכת ה- API של Windows 10 WinRT, עיין בחבילה nuget Microsoft.Windows.SDK.Contracts.

  • משפחת הפונקציות printf תואמת כעת לכללי עיגול IEEE 754 בעת הדפסת מספרים עם נקודה צפה הניתנת לייצוג מדויק, ותכבד את מצב הסיבוב המבוקש באמצעות קריאות ל- fesetround. אופן פעולה מדור קודם זמין בעת קישור ל- legacy_stdio_float_rounding.obj.

  • Windows App Certification Kit. כמה ממשקי API חדשים נוספו לרשימת ממשקי ה- API הנתמכים ב- App Certification Kit ובחנות Windows. אם קיימים ממשקי API ברשימה הנתמכת המופיעים באפור או לא זמינים ב- Visual Studio, באפשרותך לבצע שינוי קטן בקובץ המקור שלך, כדי לגשת אליהם. לקבלת פרטים נוספים, עיין בבעיה ידועה זו. חפש עדכונים נוספים לבדיקות.

  • עדכוני מהדר ההודעות (mc.exe) :

    • כעת מזהה את סימן סדר הבתים של Unicode (BOM) בקובצי .mc אם קובץ ה- .mc מתחיל ב- BOM של UTF-8, הוא ייקרא כקובץ UTF-8. אחרת, אם הוא מתחיל ב- UTF-16LE BOM, הוא ייקרא כקובץ UTF-16LE. אם הפרמטר -u צוין, הוא ייקרא כקובץ UTF-16LE. אחרת, הוא ייקרא באמצעות דף הקוד הנוכחי (CP_ACP).
    • כעת ניתן להימנע מבעיות של כלל אחד (ODR) במסייעי C/C++ ETW שנוצרו על-ידי MC-definition (לדוגמה, כאשר שני קבצי .cpp עם הגדרות מתנגשות של MCGEN_EVENTWRITETRANSFER מקושרים לאותו בינארי, עוזרי ETW שנוצרו באמצעות MC מכבדים כעת את ההגדרה של MCGEN_EVENTWRITETRANSFER בכל קובץ .cpp במקום לבחור באופן שרירותי בקובץ אחד או בשני).
  • עדכוני קדם-עיבוד (tracewpp.exe) של Windows Trace:

    • תומך בקלט Unicode (.ini, .tpl וקוד מקור). קבצי קלט החל מסימן סדר של UTF-8 או UTF-16 בתים (BOM) ייקראו כ- Unicode. קבצי קלט שאינם מתחילים ב- BOM ייקראו באמצעות דף הקוד הנוכחי (CP_ACP). לצורך תאימות לאחור, אם פרמטר שורת הפקודה -UnicodeIgnore צוין, קבצים שמתחילים ב- UTF-16 BOM יחשבו לריקות.
    • תומך בקובצי פלט Unicode (.tmh). כברירת מחדל, קבצי פלט מקודדים באמצעות דף הקוד הנוכחי (CP_ACP). השתמש בפרמטרים של שורת הפקודה -cp:UTF-8 או -cp:UTF-16 כדי ליצור קבצי פלט Unicode.
    • שינוי אופן פעולה: tracewpp ממיר כעת את כל טקסט הקלט ל- Unicode, מבצע עיבוד ב- Unicode וממיר טקסט פלט לקידוד הפלט שצוין. גירסאות קודמות של tracewpp הימנעו מהמרות Unicode ומבעיית טקסט שבוצעה בהנחה שערכת תווים של בית יחיד. הדבר עלול להוביל לשינויים באופן הפעולה במקרים שבהם קבצי הקלט אינם תואמים לדף הקוד הנוכחי. במקרים שבהם זוהי בעיה, שקול להמיר את קבצי הקלט ל- UTF-8 (עם BOM) ו/או להשתמש בפרמטר שורת הפקודה -cp:UTF-8 כדי להימנע מ רב-משמעיות של קידוד.
  • עדכוני TraceLoggingProvider.h:

    • הימנעות מבעיות של כלל אחד (ODR) הנגרמות על-ידי פקודות מאקרו של תצורה מתנגשות (לדוגמה, כאשר שני קבצי .cpp עם הגדרות מתנגשות של TLG_EVENT_WRITE_TRANSFER מקושרים לאותו קובץ בינארי, TraceLoggingProvider.h עוזר כעת יכבד את ההגדרה של TLG_EVENT_WRITE_TRANSFER בכל קובץ .cpp במקום לבחור קובץ אחד או השני באופן שרירותי).
    • בקוד C++, המאקרו TraceLoggingWrite עודכן כדי לאפשר שיתוף קוד טוב יותר בין אירועים דומים באמצעות תבניות variadic.
  • חותם על האפליקציות שלך. חתימת Device Guard היא תכונה של Device Guard הזמינה ב- Microsoft Store לעסקים ו- Education, המאפשרת לארגונים להבטיח שכל אפליקציה מגיעה ממקור מהימן. עיין בתיעוד אודות חתימת Device Guard.

  • כותרות SDK עודכנו כדי לטפל בשגיאות בעת הידור באמצעות תהליך הקדם הסטנדרטי C תואם ב- MSVC מהדר cl.exe (/Zc:preprocessor, שהוצג ב- VS 2019 v16.6).

  • תוקן: "GdiplusTypes.h אינו מבצע הידור עם NOMINMAX". ראה משוב של Visual Studio.

  • בעת בנייה עם /std:c11 או /std:c17, כעת אתה מקבל:

    • C99 tgmath.h
    • C11 static_assert ב- assert.h
    • Stdalign.h C11
    • C11 stdnoreturn.h
  • Clang/LLVM עבור Windows v11 targeting ARM64 אינו תואם לגירסה העדכנית ביותר של winnt.h

    • כדי לעקוף את הבעיה, השתמש בגירסה הקודמת של ערכת ה- SDK של Windows 10 (גירסת Build מס' 19041) או ב- CLANG/LLVM עבור Windows v10 בעת פילוח פלטפורמות ARM64
  • DirectXMath (כולל גירסה 3.16 במהדורה זו) אינו תואם ל- Clang/LLVM עבור Windows ב- ARM64.

  • המקרה של קבצי כותרת מסוימים השתנה, כדי לנורמל אותם עבור מערכות קבצים תלויות רישיות:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h ו- OleCtl.h נעשו כולם באותיות קטנות.
    • עבור גירסאות Build של Clang/LLVM עבור Windows, כדי לתמוך הן בגירסה ישנה והן בערכת ה- SDK העדכנית ביותר של Windows 10 ללא אזהרות, -Wno-nonportable-system-include-path להוסיף ל- CLI או #pragma הבאות במקור:

    #ifdef __clang__

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

    #endif

Windows 10 SDK, עדכון השירות של גירסה 2004 (פורסם ב- 16/12/2020)

מהדורה זו מכילה את הקבצים הבאים. אם אתה נתקל בבעיות אלה, מומלץ לעדכן את גירסת ה- SDK בהקדם האפשרי כדי להימנע מהן:

  • נפתרו באופן בלתי צפוי וקשים לאבחון קריסות בעת קישור ספריות מטריות וספריות מערכת הפעלה מקוריות (לדוגמה, onecoreuap.lib ו- kernel32.lib)
  • נפתרה בעיה שמנעה מ- AppVerifier לפעול
  • נפתרה בעיה שגרמה לכשל ב- WACK עם "המשימה נכשלה בהפעלת HighVersionLie"

משאבים נוספים