.NET meets COM
Ohne "Managed Code" kommt in Zukunft kein Programmierer mehr aus. Ganz gleich, ob unter .NET oder unter Java erzeugt: Immer mehr Module, Bibliotheken und Anwendungsprogramme sind "managed".
Allerdings gibt es immer noch eine Vielzahl von "altem" Code, den man nicht mehr aktualisieren will oder kann - etwa weil man eine ActiveX-Komponente zugekauft hat und der Hersteller keine .NET-Variante anbietet. Darum ist es notwendig, dass man auch alten Code oder Bibliotheken weiterverwenden kann - zumindest mittelfristig. In diesem Beitrag erfahren Sie, wie Sie mit .NET auf "unmanaged" Code zugreifen und umgekehrt.
Der Zugriff mit .NET auf vorhandenen Win32-Code ist am einfachsten, wenn der vorliegende Code als ActiveX-Control oder COM-Objekt vorliegt, denn dafür bietet Visual Studio einen sehr guten Support. Im Prinzip kann man ActiveX-Controls in einem Visual-Studio-Projekt derart nutzen, als wären es .NET-Objekte. Damit das so einfach funktioniert, erzeugt Visual Studio im Hintergrund den passenden Wrapper-Code, der mit dem ActiveX-Control kommuniziert und dem .NET-Programm vorgaukelt, dass es sich um ein .NET-Control handelt.
Damit Sie das benötigte Vorgehen für die Nutzung von ActiveX aus einer .NET-Anwendung heraus besser nachvollziehen können, gibt es begleitend zum Artikel ein Beispielprojekt mit einem ActiveX-Control in MFC und einem C#-Projekt, das dieses Control verwendet.