Uyumluluk

Evrensel C Çalışma Zamanı Kitaplığı (UCRT), C++ uyumluluğu için gereken C standart kitaplığının çoğunu destekler. Belirli özel durumlar dışında C99 (ISO/IEC 9899:1999) kitaplığını uygular:

  • complex.h> içinde <katı tür uyumluluğu.
  • aligned_alloc, Windows işletim sistemi hizalanmış ayırmaları desteklemediğinden büyük olasılıkla uygulanmayacaktır. Bunun yerine standart _aligned_mallocolmayan kullanın.
  • strerrorlen_s
  • stdatomic.h'de <atomik destek>
  • threads.h'de <iş parçacığı desteği>

UCRT, POSIX.1 (ISO/IEC 9945-1:1996, POSIX Sistem Uygulama Programı Arabirimi) C kitaplığının büyük bir alt kümesini de uygular. Ancak, belirli bir POSIX standardına tam olarak uygun değildir. UCRT, bir standardın parçası olmayan Microsoft'a özgü birkaç işlev ve makro da uygular.

Visual C++ uygulamasının Microsoft uygulamasına özgü işlevler vcruntime kitaplığında bulunur. Bu işlevlerin çoğu dahili kullanım içindir ve kullanıcı kodu tarafından çağrılamazsınız. Bazıları hata ayıklama ve uygulama uyumluluğunda kullanılmak üzere belgelenmiştir.

C++ standardı, genel ad alanında alt çizgiyle başlayan adları uygulamaya ayırır. Hem POSIX işlevleri hem de Microsoft'a özgü çalışma zamanı kitaplığı işlevleri genel ad alanındadır, ancak standart C çalışma zamanı kitaplığının bir parçası değildir. Bu nedenle, bu işlevlerin tercih edilen Microsoft uygulamaları önde gelen bir alt çizgiye sahiptir. Taşınabilirlik için, UCRT varsayılan adları da destekler, ancak Bunları kullanan kod derlendiğinde Microsoft C++ derleyicisi bir kullanımdan kaldırma uyarısı görüntüler. İşlevlerin kendileri değil, yalnızca varsayılan adlar kullanım dışıdır. Uyarıyı engellemek için, özgün POSIX adlarını kullanan koda üst bilgileri eklemeden önce tanımlayın _CRT_NONSTDC_NO_WARNINGS . C standardı üst bilgi dosyalarında standart olmayan adlara varsayılan olarak /std:c11 izin vermediğinden ve /std:c17 POSIX işlevleri, türleri ve makroları için varsayılan adları kullanıma sunmaz. Bu adlar gerekiyorsa, bunları kullanıma açmak için tanımlayın _CRT_DECLARE_NONSTDC_NAMES .

Standart C kitaplığındaki bazı işlevlerin, yanlış kullanılan parametreler ve işaretsiz arabellekler nedeniyle güvenli olmayan kullanım geçmişi vardır. Bu işlevler genellikle koddaki güvenlik sorunlarının kaynağıdır. Microsoft, bu işlevlerin parametre kullanımını doğrulayan bir dizi daha güvenli sürümü oluşturmuştur. Çalışma zamanında bir sorun algılandığında geçersiz parametre işleyicisini çağırırlar. Varsayılan olarak, Microsoft C++ derleyicisi daha güvenli bir değişkene sahip bir işlev kullanıldığında kullanımdan kaldırma uyarısı görüntüler. Kodunuzu C++ olarak derlerken çoğu uyarıyı ortadan kaldırmak için 1 olarak tanımlayabilirsiniz _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES . Bu makro, şablon aşırı yüklemelerinin taşınabilir kaynak kodunu korurken daha güvenli varyantları çağırmasını sağlar. Uyarıyı engellemek için, bu işlevleri kullanan koda üst bilgileri eklemeden önce tanımlayın _CRT_SECURE_NO_WARNINGS . Daha fazla bilgi için bkz . CRT'deki güvenlik özellikleri.

UCRT, belirli işlevlerin belgelerinde belirtilenler dışında Windows API ile uyumludur. Bazı işlevler Windows Mağazası veya Evrensel Windows Platformu (UWP) uygulamalarında desteklenmez. Bu işlevler, Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevlerinde listelenir.

Ünvan Açıklama
UWP uygulamaları, Windows Çalışma Zamanı ve C çalışma zamanı UCRT yordamlarının Evrensel Windows uygulamaları veya Microsoft Store uygulamalarıyla ne zaman uyumlu olmadığını açıklar.
ANSI C uyumluluğu UCRT'de standart uyumlu adları açıklar.
UNIX Programları UNIX'e taşıma yönergeleri sağlar.
Windows platformları (CRT) CRT'nin desteklediği işletim sistemlerini listeler.
Geriye dönük uyumluluk Eski CRT adlarını yeni adlarla eşlemeyi açıklar.
C çalışma zamanı (CRT) ve C++ Standart Kitaplığı (STL) .lib dosyaları CRT kitaplığı (.lib) dosyalarına ve ilişkili derleyici seçeneklerine genel bir bakış sağlar.