Windows SDK

ה- Windows SDK (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. לפני התקנת SDK זה:

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

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

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

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

  • 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 לפני שתתקין את ערכת Windows SDK.

דוגמאות

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

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

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

API Light Up

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

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

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 והוסרה הכותרת העליונה. אם ברצונך להשתמש ב- ENUM tagServerSelection, יהיה עליך לכלול את wuapi.h או wuapi.idl.

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

  • משפחת הפונקציות 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/C++ הנגרמות על-ידי פקודות מאקרו של תצורה מתנגשות (לדוגמה, כאשר שני קבצי .cpp עם הגדרות מתנגשות של MCGEN_EVENTWRITETRANSFER מקושרים לאותו בינארי, עוזרי ETW שנוצרו באמצעות MC מכבדים כעת את ההגדרה של MCGEN_EVENTWRITETRANSFER בכל קובץ .cpp במקום לבחור באופן שרירותי אחד או בשני).
  • Windows מעקב אחר עדכוני קדם-מעבד (tracewpp.exe):

    • תומך בקלט 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
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM for Windows v11 targeting ARM64 is not compatible with the latest 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 נעשו כולם באותיות קטנות.
    • עבור Clang/LLVM עבור גירסאות build של 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"

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

  • הורדות וכלים

    קבל את המהדורות העדכניות ביותר Visual Studio כלים Windows 10 פיתוח.

  • ארכיון SDK

    חפש מהדורות קודמות של ה- SDK של Windows וכלים אחרים.

  • Windows זה

    שמור על קשר עם הטיסות העדכניות ביותר של SDK על-ידי רישום כמנוי לבלוג שלנו.