Suchergebnisse

Suchergebnisse 1-3 von insgesamt 3.

  • Benutzer-Avatarbild

    Du hast mit allen 3 Punkten recht(Ich bin beeindruckt) 1. Ist dabei die gängigste herangehensweise.Vergiss wie immer nicht export "C" um das name-mangling zu verhindern. Nennt man auch gerne C Bridge/Wrapper. Dabei wirst du aber im Prinzip diesselbe Klasse noch einmal schreiben, man kann sich natürlich ein paar Vereinfachungen machen wie z.b. das automatische binding von this an den ersten Parameter, da es jedoch bisher keine Compile-Time reflection gibt doch ziemlich nervig in C# Jedoch wirst d…

  • Benutzer-Avatarbild

    Den C-Wrapper baust du direkt in die Library mit ein. Natürlich kannst du das auch trennen und dann beim erstellen der C-Bridge die statische Cpp Lib linken. Ist evtl. auch gar nicht so unsinnvoll, jedoch find ich kannst für die Shared-Lib immer den C-Wrapper einbauen, sonst hast du mMn zu viele unterschiedliche Versionen einer Datei...

  • Benutzer-Avatarbild

    C++ Klassen und .Net Klassen sind schlichtweg nicht kompatibel, andere Art von VTable, selbst die Vererbung ist anders. Und auch Klassen unterschiedlicher C++ Kompiler sind nicht miteinander kompatibel. Deshalb musst du auf IntPtr basis arbeiten. Jede wrapper klasse hält sich selbst als Handle. VB.NET-Quellcode (15 Zeilen)