CompatibilitéCompatibility

La bibliothèque Runtime C universel (UCRT) prend en charge la majeure partie de la bibliothèque standard C requise pour la conformité C++.The Universal C Runtime Library (UCRT) supports most of the C standard library required for C++ conformance. Il implémente la bibliothèque C99 (ISO/IEC 9899:1999), à quelques exceptions près :It implements the C99 (ISO/IEC 9899:1999) library, with certain exceptions:

  • compatibilité de type stricte dans <complex.h> .strict type compatibility in <complex.h>.
  • aligned_alloc, qui n’est probablement pas implémenté, car le système d’exploitation Windows ne prend pas en charge les allocations alignées.aligned_alloc, which will probably not be implemented because the Windows operating system doesn't support aligned allocations. Utilisez plutôt le non standard _aligned_malloc .Use the non-standard _aligned_malloc, instead.
  • strerrorlen_s
  • prise en charge atomique dans <stdatomic.h>atomic support in <stdatomic.h>
  • prise en charge des threads dans <threads.h>threading support in <threads.h>

Le UCRT implémente également un grand sous-ensemble de la bibliothèque POSIX. 1 (ISO/IEC 9945-1:1996, POSIX System Application Program Interface).The UCRT also implements a large subset of the POSIX.1 (ISO/IEC 9945-1:1996, the POSIX System Application Program Interface) C library. Toutefois, il n’est pas entièrement conforme à une norme POSIX spécifique.However, it's not fully conformant to any specific POSIX standard. Le UCRT implémente également plusieurs fonctions et macros propres à Microsoft qui ne font pas partie d’une norme.The UCRT also implements several Microsoft-specific functions and macros that aren't part of a standard.

Les fonctions spécifiques à l’implémentation Microsoft de Visual C++ se trouvent dans la bibliothèque vcruntime.Functions specific to the Microsoft implementation of Visual C++ are found in the vcruntime library. La plupart de ces fonctions sont destinées à un usage interne et ne peuvent pas être appelées par le code utilisateur.Many of these functions are for internal use and can't be called by user code. La documentation décrit certaines fonctions destinées au débogage et à l’implémentation de la compatibilité.Some are documented for use in debugging and implementation compatibility.

La norme C++ réserve à l’implémentation des noms qui commencent par un trait de soulignement dans l’espace de noms global.The C++ standard reserves names that begin with an underscore in the global namespace to the implementation. Les fonctions POSIX et les fonctions de bibliothèque Runtime spécifiques à Microsoft se trouvent dans l’espace de noms global, mais ne font pas partie de la bibliothèque Runtime C standard.Both the POSIX functions and Microsoft-specific runtime library functions are in the global namespace, but aren't part of the standard C runtime library. C’est la raison pour laquelle les implémentations Microsoft préférées de ces fonctions ont un trait de soulignement de début.That's why the preferred Microsoft implementations of these functions have a leading underscore. Pour des raisons de portabilité, la bibliothèque UCRT prend également en charge les noms par défaut. Toutefois, le compilateur Microsoft C++ émet un avertissement de dépréciation quand du code qui les utilise est compilé.For portability, the UCRT also supports the default names, but the Microsoft C++ compiler issues a deprecation warning when code that uses them is compiled. Seuls les noms par défaut sont déconseillés, pas les fonctions elles-mêmes.Only the default names are deprecated, not the functions themselves. Pour supprimer l’avertissement, définissez _CRT_NONSTDC_NO_WARNINGS avant d’inclure des en-têtes dans le code qui utilise les noms POSIX d’origine.To suppress the warning, define _CRT_NONSTDC_NO_WARNINGS before including any headers in code that uses the original POSIX names.

Certaines fonctions de la bibliothèque C standard ont un historique d’utilisation non sécurisée, en raison de paramètres mal utilisés et de mémoires tampons non vérifiées.Certain functions in the standard C library have a history of unsafe usage, because of misused parameters and unchecked buffers. Ces fonctions sont souvent à l’origine de problèmes de sécurité dans le code.These functions are often the source of security issues in code. Microsoft a créé un ensemble de versions plus sécurisées de ces fonctions qui vérifient l’utilisation des paramètres.Microsoft created a set of safer versions of these functions that verify parameter usage. Ils appellent le gestionnaire de paramètres non valides lorsqu’un problème est détecté au moment de l’exécution.They invoke the invalid parameter handler when an issue is detected at runtime. Par défaut, le compilateur Microsoft C++ émet un avertissement de dépréciation quand une variante plus sécurisée d’une fonction est disponible.By default, the Microsoft C++ compiler issues a deprecation warning when a function is used that has a safer variant available. Quand vous compilez votre code en C++, vous pouvez définir _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES comme 1 pour éliminer la plupart des avertissements.When you compile your code as C++, you can define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES as 1 to eliminate most warnings. Cette macro permet aux surcharges de modèle d’appeler les variantes plus sûres tout en conservant le code source portable.This macro enables template overloads to call the safer variants while maintaining portable source code. Pour supprimer l’avertissement, définissez _CRT_SECURE_NO_WARNINGS avant d’inclure des en-têtes dans le code qui utilise ces fonctions.To suppress the warning, define _CRT_SECURE_NO_WARNINGS before including any headers in code that uses these functions. Pour plus d'informations, consultez Security Features in the CRT.For more information, see Security Features in the CRT.

À l’exception de ce qui est indiqué dans la documentation pour des fonctions spécifiques, la bibliothèque UCRT est compatible avec l’API Windows.Except as noted within the documentation for specific functions, the UCRT is compatible with the Windows API. Certaines fonctions ne sont pas prises en charge dans les applications Windows Store ou plateforme Windows universelle (UWP).Certain functions aren't supported in Windows Store or Universal Windows Platform (UWP) apps. Ces fonctions sont répertoriées dans fonctions CRT non prises en charge dans les applications plateforme Windows universelle.These functions are listed in CRT functions not supported in Universal Windows Platform apps.

IntituléTitle DescriptionDescription
Applications UWP, Windows Runtime et Runtime CUWP Apps, the Windows Runtime, and the C runtime Décrit le moment où les routines UCRT ne sont pas compatibles avec les applications Windows universelles ou les applications de Microsoft Store.Describes when UCRT routines aren't compatible with Universal Windows apps or Microsoft Store apps.
Conformité ANSI CANSI C Compliance Décrit l’affectation de noms dans la bibliothèque UCRT conforme à la norme.Describes standard-compliant naming in the UCRT.
UNIXUNIX Fournit des instructions pour le portage de programmes vers UNIX.Provides guidelines for porting programs to UNIX.
Plateformes Windows (CRT)Windows Platforms (CRT) Répertorie les systèmes d'exploitation qui offrent une prise en charge CRT.Lists the operating systems that are the CRT supports.
Compatibilité descendanteBackward Compatibility Explique comment mapper les anciens noms CRT aux nouveaux.Describes how to map old CRT names to the new ones.
Fonctionnalités de la bibliothèque CRTCRT Library Features Offre une vue d'ensemble des fichiers de bibliothèque CRT (.lib) et les options de compilateur associées.Provides an overview of the CRT library (.lib) files and the associated compiler options.