Novità di Visual C++ 2008

Aggiornamento: novembre 2007

In questo argomento vengono presentate le nuove funzionalità e modifiche di questa versione di Visual Studio 2008.

Ambiente di sviluppo integrato (IDE) di Visual C++

Termine

Definizione

Le finestre di dialogo create nelle applicazioni ATL, MFC e Win32 sono ora conformi alle linee guida di stile di Windows Vista.

Quando si crea un nuovo progetto utilizzando Visual Studio 2008, tutte le finestre di dialogo inserite nell'applicazione saranno conformi alla linea guida dello stile Windows Vista. Se si ricompila un progetto creato con una versione precedente di Visual Studio, qualsiasi finestra di dialogo esistente avrà lo stesso aspetto di prima. Per ulteriori informazioni sull'inserimento di finestre di dialogo nell'applicazione, vedere Editor finestre.

La procedura guidata Progetto ATL ha ora un'opzione per registrare i componenti per tutti gli utenti.

A partire da Visual Studio 2008, i componenti COM e le librerie dei tipi creati mediante la procedura guidata Progetto ATL vengono registrati nel nodo HKEY_CURRENT_USER del Registro di sistema a meno che non si selezioni Registra componente per tutti gli utenti. Per ulteriori informazioni, vedere Impostazioni applicazione, Creazione guidata progetto ATL.

La procedura guidata Progetto ATL non include più un'opzione per creare progetti ATL con attributi.

A partire da Visual Studio 2008, la procedura guidata Progetto ATL non include un'opzione per modificare lo stato con attributo di un nuovo progetto. Tutti i nuovi progetti creati tramite la procedura guidata sono ora privi di attributi.

La scrittura nel Registro di sistema può essere reindirizzata.

Con l'introduzione di Windows Vista, la scrittura in determinate aree del Registro di sistema richiede l'esecuzione di un programma in modalità elevata. Non è opportuno eseguire Visual Studio sempre in modalità elevata. Il reindirizzamento per utente consente di reindirizzare automaticamente le operazioni di scrittura del Registro di sistema da HKEY_CLASSES_ROOT a HKEY_CURRENT_USER senza alcuna modifica della programmazione. Per ulteriori informazioni, vedere Pagine delle proprietà Linker.

Progettazione classi dispone ora di un supporto limitato per il codice C++ nativo.

Nelle precedenti versioni di Visual Studio, Progettazione classi funzionava solo con Visual C# e Visual Basic. Gli utenti di C++ possono ora utilizzare Progettazione classi, ma unicamente in modalità di sola lettura. Per ulteriori informazioni sull'utilizzo di Progettazione classi con C++, vedere Utilizzo del codice Visual C++ in Progettazione classi.

Librerie di Visual C++

Generale

Termine

Definizione

Le applicazioni possono essere associate a versioni specifiche delle librerie di Visual C++.

Talvolta un'applicazione dipende da aggiornamenti apportati in una nuova versione delle librerie di Visual C++. In questo caso, l'esecuzione dell'applicazione in un computer in cui è presente una versione precedente delle librerie può causare un comportamento imprevisto. È ora possibile associare un'applicazione a una versione specifica delle librerie in modo da impedirne l'esecuzione in un computer contenente una versione precedente delle librerie. Per ulteriori informazioni, vedere Ridistribuzione di un'applicazione e relativa associazione a librerie specifiche.

Libreria STL/CLR

Termine

Definizione

La libreria STL/CLR ora è inclusa in Visual C++.

La libreria STL/CLR è un assemblaggio della libreria di modelli standard (STL, Standard Template Library ), un sottoinsieme della libreria C++ standard, da utilizzare con C++ e Common Language Runtime (CLR) di .NET Framework. Con STL/CLR è ora possibile utilizzare tutti i contenitori, gli iteratori e gli algoritmi della libreria STL in un ambiente gestito.

Libreria MFC

Termine

Definizione

Windows Vista supporta i controlli comuni.

Sono stati aggiunti oltre 150 metodi in 18 classi nuove o esistenti, così da supportare le funzionalità di Windows Vista o migliorare le funzionalità delle classi MFC correnti.

La nuova classe CNetAddressCtrl consente di inserire e convalidare gli indirizzi IPv4 e IPv6 o i nomi DNS. La nuova classe CPagerCtrl semplifica l'utilizzo del controllo pager di Windows. La nuova classe CSplitButton semplifica l'utilizzo del controllo splitbutton di Windows per selezionare un'azione predefinita o facoltativa.

Libreria di supporto per C++

Termine

Definizione

In C++ viene introdotta la libreria di marshalling.

La libreria di marshalling fornisce una modalità facile e ottimizzata per l'esecuzione del marshalling dei dati tra ambienti nativi e gestiti. La libreria è un'alternativa ad approcci più complessi e meno efficienti come l'utilizzo di PInvoke. Per ulteriori informazioni, vedere Overview of Marshaling in C++.

ATL Server

Termine

Definizione

Il server ATL viene rilasciato come progetto di origine condiviso.

La maggior parte della codebase del server ATL è stata rilasciata come progetto di origine condiviso in CodePlex e non viene installato nell'ambito di Visual Studio 2008. Alcuni dei file associati al server ATL non sono più disponibili in Visual Studio. Per l'elenco dei file rimossi, vedere Removed ATL Server Files.

Le classi di codifica e decodifica dei dati di atlenc.h nonché le funzioni delle utilità e le classi di atlutil.h e atlpath.h fanno ora parte della libreria ATL.

Microsoft continuerà a supportare le versioni del server ATL incluse nelle precedenti versioni di Visual Studio finché tali versioni di Visual Studio saranno supportate. CodePlex continuerà lo sviluppo del codice del server ATL come progetto di community. Microsoft non supporta una versione CodePlex del server ATL.

Compilatore e linker Visual C++

Modifiche al compilatore

Termine

Definizione

Il compilatore supporta le compilazioni incrementali gestite.

Se si specifica questa opzione, il compilatore non ricompila il codice quando cambia un assembly a cui si fa riferimento. Esegue invece una compilazione incrementale. I file vengono ricompilati solo se le modifiche influiscono sul codice dipendente. Per ulteriori informazioni, vedere Pagina delle proprietà Generale (Progetto).

Gli attributi correlati ad ATL Server non sono più supportati.

Nel compilatore non sono più supportati più attributi direttamente correlati ad ATL Server. Per un elenco completo degli attributi rimossi, vedere Ultime modifiche.

Il compilatore supporta la microarchitettura Intel Core

Il compilatore contiene l'ottimizzazione per la microarchitettura Intel Core durante la generazione del codice. Per impostazione predefinita, questa funzionalità è attiva e non può essere disattivata poiché ottimizza anche il funzionamento dei processori Pentium 4 e di altri tipi di processori.

Gli intrinseci supportano i nuovi processori AMD e Intel.

Molte nuove istruzioni intrinseche supportano le nuove funzionalità dei più recenti processori AMD e Intel. Per ulteriori informazioni sui nuovi intrinseci, vedere Supplemental Streaming SIMD Extensions 3 Instructions, Streaming SIMD Extensions 4 Instructions, SSE4a and Advanced Bit Manipulation Intrinsics, AES Intrinsics, _mm_clmulepi64_si128 e __rdtscp.

La funzione __cpuid è stata aggiornata.

Le funzioni __cpuid supportano ora varie funzionalità nuove delle revisioni più recenti dei processori AMD e Intel. L'intrinseco __cpuidex è nuovo e consente di raccogliere una quantità di informazioni maggiore dai processori recenti.

L'opzione del compilatore /MP riduce il tempo totale di compilazione.

L'opzione /MP può ridurre significativamente il tempo totale necessario per compilare vari file di origine creando alcuni processi che compilano simultaneamente i file. Questa opzione è utile specialmente in computer che supportano l'hyperthreading, più processori o più core.

L'opzione del compilatore /Wp64 e la parola chiave __w64 sono state rese obsolete.

L'opzione del compilatore /Wp64 e la parola chiave __w64, che rilevano i problemi di portabilità a 64 bit, sono state rese obsolete e verranno rimosse in una versione futura del compilatore. Anziché utilizzare questa opzione e questa parola chiave, utilizzare un compilatore di Visual C++ che ha come destinazione una piattaforma a 64 bit. Per ulteriori informazioni, vedere Programmazione a 64 bit con Visual C++.

/Qfast_transcendentals

Genera codice inline per le funzioni trascendenti. Per ulteriori informazioni, vedere /Qfast_transcendentals (forzare funzioni trascendenti veloci).

/Qimprecise_fwaits

Rimuove i comandi fwait all'interno dei blocchi try quando si utilizza l'opzione del compilatore /fp:except. Per ulteriori informazioni, vedere /Qimprecise_fwaits (rimuovere comandi fwait all'interno dei blocchi try).

Modifiche al linker

Termine

Definizione

Le informazioni di Controllo account utente vengono ora incorporate nei file manifesto degli eseguibili dal linker (link.exe) di Visual C++.

Per impostazione predefinita questa funzionalità è attivata. Per ulteriori informazioni, vedere Effetti del Controllo dell'account utente sull'applicazione. Per ulteriori informazioni sulla disattivazione di questa funzionalità o sulla modifica del comportamento predefinito, vedere /MANIFESTUAC (incorporazione delle informazioni sul controllo dell'account utente nel manifesto).

Il linker dispone ora dell'opzione /DYNAMICBASE per attivare la funzionalità ASLR (Address Space Layout Randomization) di Windows Vista.

Questa opzione modifica l'intestazione di un file eseguibile per indicare se l'applicazione deve essere riassegnata in modo casuale in fase di caricamento. Per ulteriori informazioni, vedere /DYNAMICBASE (utilizzo della funzionalità ASLR).

Esempi di Visual C++

Nuovi esempi per Visual Studio 2008

Termine

Definizione

Esempio CFileDialog: registrazione dell'ordine degli eventi

Viene creata una finestra di dialogo personalizzata che illustra gli eventi che vengono generati quando si crea un oggetto CFileDialog.

Esempio CMNCTRL3: dimostrazione dei nuovi controlli MFC disponibili in Visual Studio 2008

Vengono illustrati alcuni dei controlli nuovi disponibili con MFC in Windows Vista, incluso il pulsante di collegamento al comando (CButton), il controllo pager (CPagerCtrl), il pulsante di divisione (CSplitButton) e il controllo dell'indirizzo di rete (CNetAddressCtrl).

Esempio NETADDR: esempio di controllo Net Address Verifier di Windows Vista

Viene mostrato l'utilizzo del controllo di verifica degli indirizzi di rete di Windows Vista.

Esempio StlClrLibrary: dimostrazione delle funzionalità STL/CLR

Vengono illustrate alcune delle funzionalità disponibili per l'utilizzo della libreria STL/CLR.

Visual C++ Express Edition

Aggiunte a Visual C++ Express Edition

Termine

Definizione

Windows SDK è ora incluso in Visual C++ Express Edition

Gli utenti di Visual C++ Express Edition possono ora utilizzare Windows SDK senza doverlo scaricare e installare separatamente. Anche la Procedura guidata Progetto Win32 è ora inclusa in Visual C++ Express Edition.

Sezioni correlate

Termine

Definizione

Ultime modifiche

Vengono elencate le ultime modifiche in Visual C++ 2008.

Porting e aggiornamento di programmi

Vengono forniti collegamenti a informazioni relative al porting da altre piattaforme e all'aggiornamento da versioni precedenti di Visual C++.

Procedura: aggiornare progetti da versioni precedenti di Visual C++

Vengono forniti collegamenti a informazioni relative all'aggiornamento di progetti Visual C++ da versioni precedenti.

Vedere anche

Altre risorse

Guida introduttiva a Visual C++

Modifiche di prodotto precedenti