Gemischte (systemeigene und verwaltete) Assemblys
Aktualisiert: November 2007
Gemischte Assemblys können sowohl nicht verwaltete Maschinenanweisungen als auch MSIL-Anweisungen enthalten. Dadurch können sie .NET-Komponenten aufrufen und von ihnen aufgerufen werden, wobei die Kompatibilität mit vollständig nicht verwalteten Komponenten erhalten bleibt. Mit gemischten Assemblys können Entwickler Anwendungen mit einer Mischung aus verwalteten und nicht verwalteten Funktionen erstellen. Deshalb sind gemischte Assemblys optimal für das Migrieren von vorhandenen Visual C++-Anwendungen zur .NET-Plattform geeignet.
So kann z. B. eine vorhandene Anwendung, die vollständig aus nicht verwalteten Funktionen besteht, in die .NET-Plattform integriert werden, indem lediglich ein Modul mit dem /clr-Compilerschalter neu kompiliert wird. Dieses Modul kann dann .NET-Features verwenden, bleibt aber mit dem Rest der Anwendung kompatibel. Dadurch kann eine Anwendung schrittweise in die .NET-Plattform konvertiert werden. Es ist sogar möglich, sich für die verwaltete oder die nicht verwaltete Kompilierung für jede einzelne Funktion in derselben Datei gesondert zu entscheiden (siehe managed, unmanaged).
Visual C++ 2005 unterstützt das Generieren von drei verschiedenen Typen verwalteter Assemblys: gemischte, reine und überprüfbare Assemblys. Die beiden letzteren Typen werden unter Reiner und überprüfbarer Code behandelt.
In diesem Abschnitt
Gewusst wie: Migrieren auf /clr
Beschreibt die empfohlenen Schritte zum Einführen bzw. Aktualisieren der .NET-Funktionen in der Anwendung.Gewusst wie: Kompilieren von MFC-Code und ATL-Code mit /clr
Erläutert, wie vorhandene MFC- und ATL-Programme für die Common Language Runtime kompiliert werden können.Initialisierung gemischter Assemblys
Beschreibt das Problem der "Ladeprogrammsperren" und die entsprechenden Lösungen.Gewusst wie: Entfernen der Abhängigkeit von _vcclrit.h
Beschreibt, wie die für Visual C++ 2003 empfohlene Ladeprogrammsperrung rückgängig gemacht werden kann.Bibliotheksunterstützung für verschiedene Assemblys
Erörtert, wie systemeigene Bibliotheken in /clr-Kompilierungen verwendet werden.Überlegungen zur Leistung von Interop (C++)
Beschreibt, wie sich gemischte Assemblys und das Marshalling von Daten auf die Leistung auswirken.Anwendungsdomänen und Visual C++
Erörtert die Visual C++-Unterstützung für Anwendungsdomänen.Doppeltes Thunking (C++)
Erörtert, wie sich ein systemeigener Einstiegspunkt für eine verwaltete Funktion auf die Leistung auswirkt.Vermeiden von Ausnahmen beim Herunterfahren der CLR, wenn mit /clr erstellte COM-Objekte verwendet werden
Erörtert, wie das ordnungsgemäße Schließen einer verwalteten Anwendung sichergestellt wird, die ein mit /clr kompiliertes COM-Objekt verwendet.Gewusst wie: Erstellen einer teilweise vertrauenswürdigen Anwendung durch Entfernen der Abhängigkeit der CRT-Bibliotheks-DLL
Beschreibt das Erstellen einer teilweise vertrauenswürdigen Common Language Runtime-Anwendung mithilfe von Visual C++, indem die Abhängigkeit von msvcm90.dll aufgehoben wird.
Weitere Informationen zu Richtlinien für das Schreiben von Code für gemischte Assemblys finden Sie im MSDN-Artikel "An Overview of Managed/Unmanaged Code Interoperability" unter https://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dndotnet/html/manunmancode.asp.