Funzionalità CRT in Visual C++ 2005
Aggiornamento: novembre 2007
In questo argomento è contenuto un elenco delle nuove funzionalità CRT in Visual C++ 2005.
CRT
Ultime modifiche
Per informazioni, vedere Breaking Changes (CRT).
Nuove funzionalità
Sono state aggiunte versioni sicure di numerose funzioni. Tramite queste funzioni è possibile gestire meglio gli errori ed esercitare controlli più rigorosi sui buffer per evitare problemi di sicurezza comuni. Le nuove sicure sono riconoscibili grazie al suffisso _s.
Le versioni esistenti meno sicure di molte funzioni sono ora ritenute obsolete. Per disattivare gli avvisi negativi, definire _CRT_SECURE_NO_WARNINGS. Per ulteriori informazioni, vedere Security-Enhanced Versions of CRT Functions.
Molte funzioni esistenti convalidano ora i relativi parametri e chiamano il gestore parametri non valido quando viene passato un parametro non valido. Per ulteriori informazioni, vedere i riferimenti alle singole funzioni e l'argomento Parameter Validation.
Molte funzioni esistenti impostano ora errno anche nei casi in cui in precedenza non veniva impostato. Per informazioni specifiche su errno, vedere i riferimenti alle singole funzioni.
È stato aggiunto typedef errno_t con un valore integer di tipo. errno_t viene utilizzato ogni volta che un parametro o un tipo restituito di una funzione deve gestire codici di errore da errno. errno_t sostituisce errcode.
Le funzioni dipendenti dalle impostazioni internazionali dispongono ora di versioni in grado di accettare le impostazioni internazionali come parametro anziché utilizzare quelle attuali. Queste nuove funzioni sono caratterizzate dal suffisso _l. Sono state aggiunte diverse nuove funzioni per gli oggetti delle impostazioni internazionali. Le nuove funzioni includono _get_current_locale, _create_locale e _free_locale. Per ulteriori informazioni, vedere i riferimenti alle singole funzioni.
Sono state aggiunte nuove funzioni per il supporto del blocco e dello sblocco di handle di file. Per ulteriori informazioni, vedere _lock_file e _unlock_file.
Contrariamente alle versioni precedenti, la famiglia di funzioni _spawn non reimposta errno su zero in caso di esito positivo. Per ulteriori informazioni, vedere _spawn, _wspawn Functions.
Sono disponibili versioni della famiglia di funzioni printf che consentono di specificare l'ordine in cui vengono utilizzati gli argomenti. Vedere 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 e _vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l.
Unicode è ora un formato di testo supportato. La funzione _open supporta gli attributi _O_TEXTW, _O_UTF8 e _O_UTF16. La funzione fopen supporta il metodo "ccs=ENCODING" per specificare un formato Unicode. Per ulteriori informazioni, vedere _open, _wopen e fopen, _wfopen e fopen_s, _wfopen_s.
È ora disponibile una nuova versione delle librerie CRT generate in codice gestito (MSIL). Questa versione verrà utilizzata per la compilazione con l'opzione /clr (Compilazione Common Language Runtime). Per ulteriori informazioni, vedere C Run-Time Libraries.
_fileinfo è stata rimossa.
Le dimensioni predefinite per time_t sono ora 64 bit, con conseguente espansione dell'intervallo di time_t e di molte funzioni di tempo fino all'anno 3000. Vedere Gestione del tempo e le singole funzioni di tempo.
CRT supporta ora la definizione delle impostazioni internazionali per ogni singolo thread. È stata aggiunta la funzione _configthreadlocale per supportare questa funzionalità.
Sono state aggiunte le funzioni _statusfp2 e __control87_2 per consentire l'accesso e il controllo della parola di controllo a virgola mobile sui processori a virgola mobile x87 e SSE2.
Sono state aggiunte le funzioni _mkgmtime e _mkgmtime64 per consentire la conversione dell'ora (struct tm) nell'ora di Greenwich (GMT, Greenwich Mean Time).
Sono state apportate modifiche a swprintf e vswprintf per migliorare la conformità allo standard. Per ulteriori informazioni, vedere sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l.
Un nuovo file di intestazione, INTRIN.H, fornisce prototipi per alcune funzioni intrinseche.
La funzione fopen dispone ora di un attributo N.
La funzione _open dispone ora di un attributo _O_NOINHERIT.
La funzione atoi restituisce ora INT_MAX e imposta errno su ERANGE in corrispondenza dell'overflow. Nelle versioni precedenti il comportamento di overflow non era definito.
La famiglia di funzioni printf supporta l'output a virgola mobile esadecimale implementato secondo lo standard ANSI C99 tramite gli identificatori del tipo di formato %a e %A. Per ulteriori informazioni, vedere Caratteri di campo di tipo printf.
La famiglia printf supporta ora il prefisso di dimensioni "ll" (long long). Per ulteriori informazioni, vedere Size and Distance Specification.
La funzione _controlfp è stata ottimizzata per garantire prestazioni migliori.
Sono state aggiunte versioni di debug di numerose funzioni. Per ulteriori informazioni, vedere _strdup_dbg, _wcsdup_dbg, _tempnam_dbg, _wtempnam_dbg, _getcwd_dbg, _wgetcwd_dbg, _getdcwd_dbg, _wgetdcwd_dbg,_fullpath_dbg, _wfullpath_dbg.
Sono state aggiunte _chgsignl e _cpysignl (versioni long double).
È stato aggiunto il tipo _locale_t alla tabella dei tipi.
È stata aggiunta una nuova macro _countof Macro per il calcolo del numero di elementi in una matrice.
In ogni argomento relativo a una funzione è stata aggiunta una sezione relativa agli equivalenti .NET Framework.
Numerose funzioni per i valori stringa dispongono ora dell'opzione per troncare le stringhe anziché dare esito negativo quando le dimensioni dei buffer di output sono troppo piccole; vedere _TRUNCATE.
_set_se_translator richiede ora l'utilizzo dell'opzione del compilatore /EHa.
fpos_t è ora __int64 in /Za (per il codice C) e quando __STDC__ è impostato manualmente (per il codice C++). In precedenza era una struttura.
_CRT_DISABLE_PERFCRIT_LOCKS è in grado di migliorare le prestazioni di I/O di programmi a thread singolo.
I nomi POSIX sono ora ritenuti obsoleti a favore di nomi conformi allo standard ISO C++. Utilizzare, ad esempio, _getch anziché getch).
Sono disponibili nuovi file obj delle opzioni di Link per la modalità pure. Per ulteriori informazioni, vedere Link Options.