Zgriff auf eine .NET SDK von einer native C++ Anwendung



  • Hallo,

    Ich soll eine bestehende native C++ Anwendung durch Zugriffe auf eine von einem Drittanbieter angebotene .NET SDK erweitern. Es exitiert kein direktes C oder C++ API.

    Welche sinnvollen Möglichkeiten gibt es da?

    Entwicklungsumgebung: Visual Studio 2010



  • 1) COM Wrapper in .NET programmieren.
    Also .NET Wrapperklassen die "COM visible" sind und vom Interface her passend für COM Interop sind.

    2) Native-Wrapper in C++/CLI programmieren.

    Beide Varianten sind nicht total irre schwer/aufwendig, aber beide sind auch nicht ganz einfach.
    Ich würde das nehmen wo du bereits mehr Vorkenntnisse mitbringst (COM vs. C++/CLI). Wenn du von beiden noch nie gehört hast, dann ... pfuh. Ich schätze die C++/CLI Variante ist in Summe weniger Arbeit.

    Theoretisch gibt es natürlich noch andere Möglichkeiten:

    1. Command-Line Programm Wrapper
    2. Web Service
      Und vermutlich noch viele weitere (u.U. auch sinnvolle, die ich bloss nicht kenne bzw. mir grad nicht einfallen).


  • Hallo,

    danke für die schnelle Antwort!

    Leider kenne ich beide Techniken nicht. Die C++ Anwendung ist sogar statisch compiliert und kann durch reines Kopieren installiert werden. Daß das dann nicht mehr funktioniert, ist mir eigentlich klar.

    Ich tendiere im Moment zur Lösung mit C++/CLI, denn das Thema C++Interop hat mich immer schon gereizt.



  • Augustus schrieb:

    Welche sinnvollen Möglichkeiten gibt es da?

    Ich wurde mal mit sowas konfrontiert und hatte keinen Nerv mich detailliert mit Wrappern auseinanderzusetzen, also startete ich einfach die .net Anwendung parallel zum Hauptprozess und kommunizierte über pipes. Die net-Anwednung rufte die Funktionen für mich.

    Falls das für dich in frage kommt, ist das eine programmiertechnisch sehr einfache Lösung, aber halt recht unelegant.


Log in to reply