Ich habe mich schon eine Weile mit dem .NET CLR beschäftigt, und meine bevorzugte Sprache ist C#.
Bis vor Kurzem war mir nicht bewusst, dass C++/CLI "gemischte Modus" ausführbare Dateien erstellen kann, die in der Lage sind, nativen und verwalteten Code auszuführen.
Nun, da ich das weiß, habe ich mit einem anderen Entwicklerfreund über dieses Merkmal diskutiert und versucht herauszufinden, wann und wie diese Fähigkeit nützlich sein könnte.
Ich gehe davon aus, dass nativer Code die Fähigkeit hat, effizienter und leistungsstärker zu sein als verwalteter Code, jedoch auf Kosten zusätzlicher Entwicklungszeit.
In der Vergangenheit griff ich ausschließlich auf native C++-Bibliotheken zurück und verwendete Interop, um die Funktionalität zu nutzen, die ich in die native Bibliothek geschrieben hatte.
Ich sehe den Vorteil, keine zusätzliche Bibliothek benötigen zu müssen, frage mich aber, was die Vor- und Nachteile der Verwendung von C++/CLI gegenüber einer rein verwalteten ausführbaren Datei sind, die in C# erstellt wurde, oder einer solchen ausführbaren Datei, die Interop verwendet, um eine rein native C++-Bibliothek aufzurufen?
(Nebenbemerkung: Sind die Begriffe Interop/PInvoke austauschbar, da ich den Unterschied zwischen den Begriffen nicht verstehe, sondern sie einfach gleich verwendet habe?)