Tutotial für CLI Wrapper gesucht!



  • Ich bitte schonmal im Voraus um entschuldigung, da diese Frage bestimmt schon zum zigtausendsten mal gestellt wird.
    Ich suche nur schon seit zwei Tagen nach einer einfachen Lösung für ein Problem und bin gerade am verzweilfeln.

    Und zwar muss ich scheinbar einen CLI Wrapper schreiben um Funktionen und Klassen aus einer C# DLL in meinem C++ Projekt nutzen zu können. Kennt jemand ein einfach verständliches Tutorial, wie man beispielsweise auch Klassen mit Unterklassen übergeben kann?

    Vielleicht geht ea aber auch noch viel einfacher, deshalb würde ich kurz erklären, was ich eigentlich vorhabe:
    Ich arbeite mit einer Software, die sich über OSC (Netzwerkprotokoll) steuern lässt. Dafür habe ich eine funktionierende Steuerung in C++ geschrieben. Leider geht die Performance beim Empfängerprogramm extrem in die Knie, wenn ich sehr viele Nachrichten schicke. (Hintergrund ist die Steuerung von 3D-Objekten im Zielprogramm, wobei jedes dieser Objekte ein OSC-Empfängermodul bekommen muss). Meine Steuerungssoftware läuft mit minimaler CPU-Last, weshalb ich beim Empfang im Zielprogramm den Engpass vermute.

    Darüber hinaus gibt es jetzt aber auch noch die Möglichkeit direkt über eine Remoting-DLL auf freigegebene Parameter zuzugreifen, und die Zielsoftware so zu steuern. Da ich alles aber schon in C++ geschrieben habe, und auch spezielle Bibliotheken eingebunden habe, kann ich mein Programm nicht ohne weiteres in C# umschreiben. Deshalb muss ich wohl einen Wrapper für die bestehende DLL schreiben. ... Woran ich greade etwas verzweifle, da ich sowas noch nie gemacht habe, und nicht wirklich weiß, wie ich die Datentypen usw. übergeben soll.

    Oder gibt es einen noch viel einfacherern Weg? (Ohne die Auto-Vervollständigungen zu verlieren, die bei CLI wohl deaktiviert werden?)
    Und was mich am meisten ärgert ist, dass ich in C# ganz einfach auf diese DLL zugreifen kann, ohne irgendwelche Header oder sonstwas angeben zu müssen...
    HILFE!!!



  • 1. Du benötigst ein gutes / tiefes Verständnis für .NET
    2. Du benötigst ein gutes / tiefes Verständnis für C++ (native)
    3. Das Buch hilft: Expert C++/CLI: .NET for Visual C++ Programmers | ISBN: 9781590597569

    Edit: Je nach C++ Applikationstyp ist ev. COM Interop besser geeignet (suche nach CCW -> COM Callable Wrapper)


Anmelden zum Antworten