Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows API'sinin üst bilgi dosyaları, 32 ve 64 bit uygulamalar oluşturmanıza olanak tanır. Bunlar, API'nin hem Unicode hem de ANSI sürümleri için bildirimler içerir. Daha fazla bilgi için bkz. Windows API'sinde Unicode. Uygulamanızın hem 32 hem de 64 bit sürümlerini tek bir kaynak kod tabanından oluşturmanıza olanak tanıyan veri türlerini kullanırlar. Daha fazla bilgi için bkz. 64 bit Windowsiçin Hazırlanıyor. Ek özellikler arasında Üst Bilgi Ek Açıklamaları ve STRICT Tür Denetimibulunur.
- Visual C++ ve Windows Üst Bilgi Dosyaları
- Koşullu Bildirimler için Makroları
- WINVER veya _WIN32_WINNT Ayarlama
- Yapı Paketlemesini Kontrol Etme
- Daha Küçük Üst Bilgi Dosyalarıyla Daha Hızlı Derlemeler
- İlgili konular
Visual C++ ve Windows Üst Bilgi Dosyaları
Microsoft Visual C++, Visual C++ yayımlandığı sırada geçerli olan Windows üst bilgi dosyalarının kopyalarını içerir. Bu nedenle, güncelleştirilmiş üst bilgi dosyalarını bir SDK'dan yüklerseniz, bilgisayarınızdaki Windows üst bilgi dosyalarının birden çok sürümüyle karşılaşabilirsiniz. SDK üst bilgi dosyalarının en son sürümünü kullandığınızdan emin değilseniz, Visual C++ yayımlandıktan sonra sunulan özellikleri kullanan kodu derlerken aşağıdaki hata kodunu alırsınız: hata C2065: bildirilmemiş tanımlayıcı.
Koşullu Bildirimler için Makrolar
Belirli bir Windows sürümüne bağımlı olan bazı işlevler koşullu kod kullanılarak bildirilir. Bu, uygulamanızın hedef Windows sürümlerinde desteklenmeyen işlevler kullanıp kullanmadığını algılamak için derleyiciyi kullanmanıza olanak tanır. Bu işlevleri kullanan bir uygulamayı derlemek için uygun makroları tanımlamanız gerekir. Aksi takdirde, C2065 hata iletisini alırsınız.
Windows üst bilgi dosyaları, hangi Windows sürümlerinin birçok programlama öğesini desteklediğini belirtmek için makroları kullanır. Bu nedenle, her büyük işletim sistemi sürümünde sunulan yeni işlevleri kullanmak için bu makroları tanımlamanız gerekir. (Tek tek üst bilgi dosyaları farklı makrolar kullanabilir; bu nedenle, derleme sorunları oluşursa, koşullu tanımların tanımını içeren üst bilgi dosyasını denetleyin.) Daha fazla bilgi için bkz. SdkDdkVer.h.
Aşağıdaki tabloda, Windows üst bilgi dosyalarında kullanılan tercih edilen makrolar açıklanmaktadır. NTDDI_VERSION tanımlarsanız, _WIN32_WINNT de tanımlamanız gerekir.
Gereken en düşük sistem | NTDDI_VERSION değeri |
---|---|
Windows 10 1903 "19H1" | NTDDI_WIN10_19H1 (0x0A000007) |
Windows 10 1809 "Redstone 5" | NTDDI_WIN10_RS5 (0x0A000006) |
Windows 10 1803 "Redstone 4" | NTDDI_WIN10_RS4 (0x0A000005) |
Windows 10 1709 "Redstone 3" | NTDDI_WIN10_RS3 (0x0A000004) |
Windows 10 1703 "Redstone 2" | NTDDI_WIN10_RS2 (0x0A000003) |
Windows 10 1607 "Redstone 1" | NTDDI_WIN10_RS1 (0x0A000002) |
Windows 10 1511 "Eşik 2" | NTDDI_WIN10_TH2 (0x0A000001) |
Windows 10 1507 "Eşik" | NTDDI_WIN10 (0x0A000000) |
Windows 8.1 | NTDDI_WINBLUE (0x06030000) |
Windows 8 | NTDDI_WIN8 (0x06020000) |
Windows 7 | NTDDI_WIN7 (0x06010000) |
Windows Server 2008 | NTDDI_WS08 (0x06000100) |
Service Pack 1 (SP1) ile Windows Vista | NTDDI_VISTASP1 (0x06000100) |
Windows Vista | NTDDI_VISTA (0x06000000) |
Service Pack 2 (SP2) ile Windows Server 2003 | NTDDI_WS03SP2 (0x05020200) |
Service Pack 1 (SP1) ile Windows Server 2003 | NTDDI_WS03SP1 (0x05020100) |
Windows Server 2003 | NTDDI_WS03 (0x05020000) |
Windows XP ile Service Pack 3 (SP3) | NTDDI_WINXPSP3 (0x05010300) |
Service Pack 2 (SP2) ile Windows XP | NTDDI_WINXPSP2 (0x05010200) |
Windows XP ile Service Pack 1 (SP1) | NTDDI_WINXPSP1 (0x05010100) |
Windows XP | NTDDI_WINXP (0x05010000) |
Aşağıdaki tablolarda, Windows üst bilgi dosyalarında kullanılan diğer makrolar açıklanmaktadır.
Gereken en düşük sistem | _WIN32_WINNT ve WINVER için en düşük değer |
---|---|
Windows 10 | _WIN32_WINNT_WIN10 (0x0A00) |
Windows 8.1 | _WIN32_WINNT_WINBLUE (0x0603) |
Windows 8 | _WIN32_WINNT_WIN8 (0x0602) |
Windows 7 | _WIN32_WINNT_WIN7 (0x0601) |
Windows Server 2008 | _WIN32_WINNT_WS08 (0x0600) |
Windows Vista | _WIN32_WINNT_VISTA (0x0600) |
Windows Server 2003 with SP1, Windows XP with SP2 | _WIN32_WINNT_WS03 (0x0502) |
Windows Server 2003, Windows XP | _WIN32_WINNT_WINXP (0x0501) |
Gerekli en düşük sürüm | _WIN32_IE'nin asgari değeri |
---|---|
Internet Explorer 11.0 | _WIN32_IE_IE110 (0x0A00) |
Internet Explorer 10.0 | _WIN32_IE_IE100 (0x0A00) |
Internet Explorer 9.0 | _WIN32_IE_IE90 (0x0900) |
Internet Explorer 8.0 | _WIN32_IE_IE80 (0x0800) |
Internet Explorer 7.0 | _WIN32_IE_IE70 (0x0700) |
Internet Explorer 6.0 SP2 | _WIN32_IE_IE60SP2 (0x0603) |
Internet Explorer 6.0 SP1 | _WIN32_IE_IE60SP1 (0x0601) |
Internet Explorer 6.0 | _WIN32_IE_IE60 (0x0600) |
Internet Explorer 5.5 | _WIN32_IE_IE55 (0x0550) |
Internet Explorer 5.01 | _WIN32_IE_IE501 (0x0501) |
Internet Explorer 5.0, 5.0a, 5.0b | _WIN32_IE_IE50 (0x0500) |
WINVER veya _WIN32_WINNT'i ayarlama
Bu simgeleri, her kaynak dosyadaki #define deyimini kullanarak veya Visual C++ tarafından desteklenen /D derleyici seçeneğini belirterek tanımlayabilirsiniz.
Örneğin, kaynak dosyanızda WINVER'i ayarlamak için aşağıdaki deyimi kullanın:
#define WINVER 0x0502
Kaynak dosyanızda _WIN32_WINNT ayarlamak için aşağıdaki deyimi kullanın:
#define _WIN32_WINNT 0x0502
/D derleyici seçeneğini kullanarak _WIN32_WINNT ayarlamak için aşağıdaki komutu kullanın:
cl -c /D_WIN32_WINNT=0x0502kaynak.cpp
/D derleyici seçeneğini kullanma hakkında bilgi için bkz. /D (ön işlemci tanımları).
Windows'un en son sürümünde sunulan bazı özelliklerin windows'un önceki bir sürümü için bir hizmet paketine eklenebileceğini unutmayın. Bu nedenle, bir hizmet paketini hedeflemek için bir sonraki ana işletim sistemi sürümünün değeriyle _WIN32_WINNT tanımlamanız gerekebilir. Örneğin, GetDllDirectory işlevi Windows Server 2003'te kullanıma sunulmuştur ve _WIN32_WINNT 0x0502 veya daha büyükse koşullu olarak tanımlanmıştır. Bu işlev, WINDOWS XP SP1'e de eklendi. Bu nedenle, _WIN32_WINNT Windows XP'yi hedeflemek için 0x0501 olarak tanımlarsanız, SP1 ile Windows XP'de tanımlanan özellikleri kaçırabilirsiniz.
Yapı Paketlemeyi Denetleme
Projeler, en büyük tam sayı türü 8 bayt olduğundan şu anda 8 bayt olan varsayılan yapı paketlemesini kullanacak şekilde derlenmelidir. Bunun yapılması, üst bilgi dosyalarındaki tüm yapı türlerinin Windows API'sinin beklediği hizalamayla uygulamada derlendiğinden emin olur. Ayrıca 8 baytlık değerlere sahip yapıların düzgün hizalanmasını sağlar ve veri hizalamayı zorlayan işlemcilerde hizalama hatalarına neden olmaz.
Daha fazla bilgi için bkz. /Zp (yapı üyesi hizalama) veya paketi.
Daha Küçük Üst Bilgi Dosyalarıyla Daha Hızlı Derlemeler
Aşağıdaki gibi daha az yaygın API bildirimlerinden bazılarını dışlayarak Windows üst bilgi dosyalarının boyutunu küçültebilirsiniz:
Şifreleme, DDE, RPC, Kabuk ve Windows Yuvaları gibi API'leri dışlamak için WIN32_LEAN_AND_MEAN tanımlayın.
#define WIN32_LEAN_AND_MEAN
API'yi dışlamak için NOAPI simgelerinden birini veya daha fazlasını tanımlayın. Örneğin NOCOMM, seri iletişim API'sini dışlar. Destek NOapi simgelerinin listesi için bkz. Windows.h.
#define NOCOMM
İlgili konular