Condividi tramite


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.

  • _recalloc combina le funzionalità di realloc e calloc.

Vedere anche

Concetti

Modifiche alle librerie di Visual C++ 2005