Share via


Änderungen in den Visual C++ 2005-Bibliotheken

Aktualisiert: November 2007

In den folgenden Abschnitten werden Aktualisierungen und grundlegende Änderungen behandelt, die an den Bibliotheken in Visual C++ vorgenommen wurden.

In diesem Abschnitt

Allgemeine Änderungen in den Bibliotheken

Wichtige Änderungen

Im gemischten Modus werden systemeigene Konstruktoren vor verwalteten Konstruktoren aufgerufen. Bei einer einzelnen ausführbaren Datei werden die Konstruktoren aller systemeigenen globalen Objekte vor dem Konstruktor eines verwalteten globalen Objekts aufgerufen. Dies geschieht unabhängig davon, ob sich das systemeigene und das verwaltete Objekt in der gleichen Kompilierungseinheit befinden.

Aus diesem Grund werden Anwendungen, in denen die verwalteten Konstruktoren vor den systemeigenen Konstruktoren aufgerufen werden müssen, möglicherweise nicht ordnungsgemäß ausgeführt.

Bei Abhängigkeiten zwischen globalen Objekten sollten Sie sicherstellen, dass nur Abhängigkeiten von verwalteten Objekten zu systemeigenen Objekten bestehen. Um sicherzustellen, dass ein Objekt entweder verwaltet oder systemeigen ist, legen Sie es am besten in einer entsprechend erstellten Kompilierungseinheit ab.

Änderungen in den Bibliotheken zur Unterstützung der manifestbasierten Assemblygenerierung

Ab Visual C++ 2005 handelt es sich bei der C++-Standardbibliothek und den ATL-, MFC- und CRT-Bibliotheken um parallele freigegebene Assemblys mit Manifesten. Gleichermaßen sind die Einstellungen von Compiler und Linker jetzt standardmäßig für eine Manifestgenerierung mithilfe von mt.exe festgelegt. Auf diese Weise wird sichergestellt, dass alle ausführbaren Visual C++-Dateien über ein Manifest verfügen, das auf ihre Abhängigkeit von ARL, MFC und CRT verweist. Weitere Informationen finden Sie unter Visual C++ Libraries as Shared Side-by-Side Assemblies, Bereitstellung (C++) und Erstellen von isolierten Anwendungen und parallelen Assemblys (C/C++).

Informationen zum Erstellen von Projekten mithilfe von Makefiles finden Sie unter Gewusst wie: Einbetten eines Manifests in eine C/C++-Anwendung.

Bibliotheksunterstützung für gemischte Assemblys

Visual C++ 2005 unterstützt die Verwendung der C++-Standardbibliothek sowie der ATL-, MFC- und CRT-Bibliotheken als gemischte, mit /clr kompilierte Assemblys. Sie können alle vorhandenen Funktionen dieser gemischten Bibliotheken verwenden, wenn der Code sowohl aus systemeigenem als auch MSIL-basiertem __clrcall-Code besteht. Weitere Informationen finden Sie unter Gemischte (systemeigene und verwaltete) Assemblys.

Initialisierung gemischter Assemblys

Die Bibliotheksunterstützung wurde in Visual C++ 2005 geändert, um die Probleme der Ladeprogrammsperre zu lösen, die in gemischten DLLs in Visual C++ .NET und Visual C++ .NET 2003 aufgetreten sind. Es gibt jedoch immer noch eine Einschränkung, und zwar darf der DllMain-Code niemals auf die CLR zugreifen. Weitere Informationen finden Sie unter Gemischte (systemeigene und verwaltete) Assemblys.

Bibliotheken, die von der Kompilierung im pure-Modus nicht unterstützt werden

In Visual C++ 2005 werden die ATL- und MFC-Bibliotheken von der Kompilierung im pure-Modus (/clr:pure) nicht unterstützt.

Siehe auch

Konzepte

Änderungen in Visual C++ 2005 und früheren Editionen