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