Condividi tramite


Modifiche alle librerie di Visual C++ 2005

Aggiornamento: novembre 2007

Nelle sezioni riportate di seguito vengono illustrati gli aggiornamenti e le ultime modifiche apportate alle librerie fornite con Visual C++.

In questa sezione

Modifiche generali apportate alle librerie

Ultime modifiche

In modalità mista i costruttori nativi vengono chiamati prima dei costruttori gestiti. Per un singolo eseguibile, i costruttori di tutti gli oggetti globali nativi verranno chiamati prima del costruttore di qualsiasi oggetto globale gestito, indipendentemente dal fatto che gli oggetti nativi e gestiti si trovino o meno nella stessa unità di compilazione.

È pertanto possibile che le applicazioni che utilizzano i costruttori gestiti, chiamati prima dei costruttori nativi, funzionino in un modo non corretto.

Se sono presenti dipendenze tra oggetti globali, è opportuno verificare che esistano solo dipendenze da oggetti gestiti a oggetti nativi. Il modo migliore per verificare che un oggetto sia gestito o nativo consiste nell'inserirlo in un'unità di compilazione generata in quel modo.

Modifiche apportate alle librerie per supportare la generazione di assembly basata su manifesto

Come per Visual C++ 2005, la Libreria standard di C++ e le librerie ATL, MFC e CRT sono assembly condivisi side-by-side con manifesti. Analogamente, per le impostazioni del compilatore e del linker l'impostazione predefinita è la generazione del manifesto tramite mt.exe. In questo modo, tutti gli eseguibili di Visual C++ disporranno di un manifesto che farà riferimento alla loro dipendenza da ATL, MFC e CRT. Per ulteriori informazioni, vedere Visual C++ Libraries as Shared Side-by-Side Assemblies, Distribuzione (C++) e Generazione di applicazioni isolate C/C++ e di assembly side-by-side..

Se si utilizzano makefile per la generazione dei progetti, vedere Procedura: incorporare un manifesto in un'applicazione C/C++.

Supporto delle librerie per assembly misti

In Visual C++ 2005 è supportato l'utilizzo della libreria standard di C++ e delle librerie CRT, ATL e MFC come assembly misti compilati con /clr. Queste librerie miste consentono di utilizzare tutte le funzioni esistenti quando il codice contiene una combinazione di codice nativo e di codice __clrcall MSIL. Per ulteriori informazioni, vedere Assembly misti (nativi e gestiti).

Inizializzazione di assembly misti

Le modifiche al supporto delle librerie apportate in Visual C++ 2005 risolvono i problemi del "blocco del caricatore" che riguardavano le DLL miste in Visual C++ .NET e Visual C++ .NET 2003. Tuttavia, è ancora presente una limitazione secondo la quale il codice DllMain non deve mai accedere a CLR. Per ulteriori informazioni, vedere Assembly misti (nativi e gestiti).

Librerie non supportate dalla compilazione in modalità pure

In Visual C++ 2005 le librerie MFC e ATL non sono supportate dalla compilazione in modalità pure (/clr:pure).

Vedere anche

Concetti

Modifiche apportate in Visual C++ 2005 e versioni precedenti