CompatibilitéCompatibility

La bibliothèque UCRT (Universal C Run-Time) prend en charge la majeure partie de la bibliothèque standard C requise pour la conformité C++.The Universal C Run-Time Library (UCRT) supports most of the C standard library required for C++ conformance. Elle implémente la bibliothèque C99 (ISO/IEC 9899:1999), à l’exception des macros de type générique définies dans <tgmath.h> et de la compatibilité de type stricte dans <complex.h>.It implements the C99 (ISO/IEC 9899:1999) library, with the exceptions of the type-generic macros defined in <tgmath.h>, and strict type compatibility in <complex.h>. La bibliothèque UCRT implémente également une grande partie de la bibliothèque C POSIX.1 (ISO/IEC 9945-1:1996, l’API système de POSIX), mais elle n’est pas entièrement conforme aux normes POSIX spécifiques.The UCRT also implements a large subset of the POSIX.1 (ISO/IEC 9945-1:1996, the POSIX System Application Program Interface) C library, but is not fully conformant to any specific POSIX standard. En outre, la bibliothèque UCRT implémente plusieurs fonctions spécifiques à Microsoft et des macros qui ne font pas partie d’un standard.In addition, the UCRT implements several Microsoft-specific functions and macros that are not 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. Beaucoup de ces fonctions sont destinées à un usage interne et ne peuvent pas être appelées par du code utilisateur.Many of these functions are for internal use and cannot 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. Comme les fonctions POSIX sont dans l’espace de noms global, mais qu’elles ne font pas partie de la bibliothèque Runtime C standard, les implémentations spécifiques à Microsoft de ces fonctions commencent par un trait de soulignement.Because the POSIX functions are in the global namespace, but are not part of the standard C runtime library, the Microsoft-specific 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 POSIX par défaut sont déconseillés, mais pas les fonctions elles-mêmes.Only the default POSIX names are deprecated, not the functions. 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 et qui appellent le gestionnaire de paramètre non valide quand un problème est détecté à l’exécution.Microsoft created a set of safer versions of these functions that verify parameter usage and 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 sur 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. Ceci utilise des surcharges de modèle pour appeler les variantes plus sécurisées tout en conservant le code source portable.This uses 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 du Windows Store pour Windows 8 ni dans les applications UWP sur Windows 10.Certain functions are not supported in Windows 8 Store apps or in Universal Windows Platform (UWP) apps on Windows 10. Ces fonctions sont listées dans Fonctions CRT non prises en charge dans les applications UWP, qui énumère les fonctions non prises en charge par le Windows Runtime et UWP.These functions are listed in CRT functions not supported in Universal Windows Platform apps, which enumerates the functions not supported by the Windows Runtime and UWP.

TitreTitle DescriptionDescription
Applications UWP, Windows Runtime et C RuntimeUWP Apps, the Windows Runtime, and the C Run-Time Décrit quand les routines de la bibliothèque UCRT ne sont pas compatibles avec les applications Windows universelles ou les applications du Microsoft Store.Describes when UCRT routines are not 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 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.