Der Standard-Surrogatprozess für COM - das, was COM-DLLs hostet, aka das COM Surrogate - ist dllhost.exe. Es ist möglich, einen Ersatzprozess in C ++ zu erstellen. In diesem Artikel wird erklärt, wie.
Diese APIs werden jedoch nicht in Wrappern als Teil der Basisklassenbibliothek in .NET Framework verfügbar gemacht. Wenn Sie schreiben möchten, um nur verwalteten Code zu schreiben, benötigen Sie etwas anderes.
Ich sehe ein paar Optionen.
Ich wollte dasselbe machen und fand ein exzellentes Projektbeispiel CSExeCOMServer im All-In-One Code Framework. Es rekonstruiert tatsächlich normale COM-Server-Logik mithilfe von .NET und systemeigenen Aufrufen von Windows-API. Aber es sieht alles immer noch kompliziert aus. Ich nehme an, dass es keine einfache und schnelle Möglichkeit gibt, .NET-Objekte als COM im Out-of-Process-Server bereitzustellen, und es ist nicht die Architektur der Wahl.
Eine Option, wenn Sie eine prozessexterne COM-Komponente haben möchten, besteht darin, eine DLL in COM + über Servicekomponenten . Dies unterstützt jedoch nur DLL, aber Sie könnten eine Shell-Exe (für den eigenständigen Gebrauch) schreiben, die einfach auf die DLL verweist.
Nicht ganz so einfach wie VB, aber es funktioniert.
Ich erinnere mich, dass jemand mir einen direkteren Weg (ohne COM +) gezeigt hat, aber ich kann mich nicht für das Leben von mir erinnern, was es war ...