Fonctionnalités CRT dans Visual C++ 2005
Mise à jour : novembre 2007
Cette rubrique contient une liste des nouvelles fonctionnalités CRT de Visual C++ 2005.
CRT
Nouveautés
Consultez Breaking Changes (CRT).
Nouvelles fonctionnalités
Des versions sécurisées de plusieurs fonctions ont été ajoutées. Ces fonctions comportent une meilleure gestion des erreurs et appliquent des contrôles plus stricts sur les mémoires tampon pour mieux éviter les défauts courants de sécurité. Les nouvelles versions sécurisées sont identifiées par le suffixe _s.
Les versions existantes moins sécurisées de nombreuses fonctions ont été désapprouvées. Pour désactiver les avertissements de désapprobation, définissez _CRT_SECURE_NO_WARNINGS. Pour plus d'informations, consultez Security-Enhanced Versions of CRT Functions.
De nombreuses fonctions existantes valident désormais leurs paramètres et appellent le gestionnaire de paramètre non valide lorsqu'un paramètre non valide est passé. Pour plus d'informations, consultez les références individuelles aux fonctions et la rubrique Parameter Validation.
Un grand nombre de fonctions existantes définissent désormais errno alors qu'elles ne le faisaient pas auparavant. Consultez les références individuelles aux fonctions pour des informations spécifiques sur errno.
Le typedef errno_t avec le type entier a été ajouté. errno_t est utilisé chaque fois qu'un type ou un paramètre de retour de fonction doit traiter des codes d'erreur d'errno. errno_t remplace errcode.
Les fonctions dépendantes des paramètres régionaux possèdent désormais des versions qui considèrent les paramètres régionaux comme un paramètre au lieu d'utiliser les paramètres régionaux actuels. Ces nouvelles fonctions se terminent par le suffixe _l. Plusieurs nouvelles fonctions ont été ajoutées pour travailler avec des objets de paramètres régionaux. De nouvelles fonctions comprennent _get_current_locale, _create_locale et _free_locale. Voir les références individuelles aux fonctions pour plus d'informations.
De nouvelles fonctions ont été ajoutées pour prendre en charge le verrouillage et le déverrouillage de handles de fichiers. Pour plus d'informations, consultez _lock_file et _unlock_file.
La famille de fonctions _spawn ne réinitialise pas errno à zéro en cas de réussite, comme c'était le cas dans les versions précédentes. Pour plus d'informations, consultez _spawn, _wspawn Functions.
Des versions de la famille de fonctions printf, qui permettent de spécifier l'ordre d'utilisation des arguments, sont disponibles. Consultez printf_p Positional Parameters, _cprintf_p, _cprintf_p_l, _cwprintf_p, _cwprintf_p_l, _printf_p, _printf_p_l, _wprintf_p, _wprintf_p_l, _sprintf_p, _sprintf_p_l, _swprintf_p, _swprintf_p_l, _fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l, _vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l, _vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l et _vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l.
Unicode est désormais un format de texte pris en charge. La fonction _open prend en charge les attributs _O_TEXTW, _O_UTF8 et _O_UTF16. La fonction fopen prend en charge la méthode "ccs=ENCODING" de spécification d'un format Unicode. Pour plus d'informations, consultez _open, _wopen, fopen, _wfopen et fopen_s, _wfopen_s.
Une nouvelle version des bibliothèques CRT générées en code managé (MSIL) est maintenant disponible ; elle est utilisée lors de la compilation avec l'option /clr (Compilation pour le Common Language Runtime). Consultez C Run-Time Libraries pour plus d'informations.
_fileinfo a été supprimé.
La taille par défaut de time_t est maintenant de 64 bits, ce qui étend la plage de time_t et plusieurs des fonctions d'heure jusqu'à l'an 3000. Consultez la Gestion de l'heure, et les fonctions d'heure.
Le CRT prend maintenant en charge la définition des paramètres régionaux sur une base par thread. La fonction _configthreadlocale a été ajoutée pour prendre en charge cette fonctionnalité.
Les fonctions _statusfp2 et __control87_2 ont été ajoutées pour autoriser l'accès et le contrôle du mot de commande de virgule flottante sur les processeurs à virgule flottante x87 et SSE2.
Les fonctions _mkgmtime et _mkgmtime64 ont été ajoutées pour prendre en charge la conversion des heures (struct tm) en heures GMT (heure de Greenwich).
Des modifications ont été apportées à swprintf et vswprintf pour mieux respecter la norme. Pour plus d'informations, consultez sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l.
Un nouveau fichier d'en-tête, INTRIN.H, fournit des prototypes pour certaines fonctions intrinsèques.
La fonction fopen possède maintenant un attribut N.
La fonction _open possède maintenant un attribut _O_NOINHERIT.
La fonction atoi retourne désormais INT_MAX et donne à errno la valeur ERANGE en cas de dépassement de capacité. Dans les versions antérieures, le comportement en cas de dépassement de capacité n'était pas défini.
La famille de fonctions printf prend en charge la sortie hexadécimale à virgule flottante implémentée conformément à la norme C99 ANSI, à l'aide des spécificateurs de type de format %a et %A. Pour plus d'informations, consultez Caractères de champ de type printf.
La famille printf prend désormais en charge le préfixe de taille "ll" (long long). Pour plus d'informations, consultez Size and Distance Specification.
La fonction _controlfp a été optimisée pour de meilleures performances.
Des versions Debug de certaines fonctions ont été ajoutées. Pour plus d'informations, consultez _strdup_dbg, _wcsdup_dbg, _tempnam_dbg, _wtempnam_dbg, _getcwd_dbg, _wgetcwd_dbg, _getdcwd_dbg, _wgetdcwd_dbg, _fullpath_dbg, _wfullpath_dbg.
Ajout de _chgsignl et _cpysignl (versions doubles longues).
Ajout du type _locale_t à la table des types.
Ajout de la nouvelle macro _countof Macro pour calculer le nombre d'éléments dans un tableau.
Dans chaque rubrique de fonction, une section sur les équivalents .NET Framework a été ajoutée.
Plusieurs fonctions de chaîne disposent désormais d'une option pour tronquer des chaînes plutôt que d'échouer lorsque les mémoires tampon de sortie sont trop réduites ; consultez _TRUNCATE.
_set_se_translator requiert maintenant l'utilisation de l'option /EHa du compilateur.
fpos_t est désormais __int64 sous /Za (pour le code C) et lorsque __STDC__ est défini manuellement (pour le code C++). Il s'agissait jusqu'à présent d'un struct.
_CRT_DISABLE_PERFCRIT_LOCKS peuvent améliorer les performances E/S des programmes monothreads.
Les noms POSIX ont été désapprouvés en faveur des noms conformes à ISO C++ (par exemple, utilisez _getch plutôt que getch).
De nouveaux fichiers .obj d'options de lien sont disponibles en mode pur. Pour plus d'informations, consultez Link Options.