Kann man eine Windows Form Projekt mit einer ganz normalen C++ Projekt verbunden?



  • Hallo zusammen,

    ich habe eine dringende Frage 😞 😞 😞 bezüglich der Windows Form Anwendung.
    Ich habe zwei Projekte geschrieben. Einmal eine Windows Form Anwendung in Visual C++(erst im Nachhinein habe ich gewusst,dass sie keine C++ ist...) und einmal eine ganz normale C++ Projekt. In der Windows Form Anwendung sollte man die Parameter eingeben können. Die andere ganz normale C++ Projekt sollte dann mit den vom Windows Form eingelesene Variablen rechnen und die entsprechende Ergebnis zurückgeben.
    Das Problem jetzt ist, dass beide Projekt an sich alleine funktionieren. Aber zusammen geht es leider nicht...
    Kann jemand mir bitte sagen, wie man eine C++ Projekt mit einer Windows Form Anwendung(also .Net)verbinden kann,sodass ich im C++ Code die Variable aus Windows Form abrufen kann?

    Vieeeeeelen Dank im Voraus!!! 🙂 🙂 🙂
    Michi



  • Weiß ja jetzt nicht wie kkomplex die Anwedung ist, aber kannst du nicht einfach die Verarbeitungsfunktionen des einen Projekts in das Form-Projekt als Memberfunktionen integrieren?

    Wenn das zwei Projekte bleiben müssen dann weiß ich auch nicht wie die zusammenarbeiten können.



  • Wenn das zwei Projekte bleiben müssen dann weiß ich auch nicht wie die zusammenarbeiten können.

    1. 2 getrennte Prosse, dann muss datenaustausch über IPC Mechanismen gehen.
    https://de.wikipedia.org/wiki/Interprozesskommunikation
    Muss für den user nicht unbedingt als 2 Programme ersichtlich sein, weil den 2. prozess kann der 1. automatisch starten ^^
    Ist in Linux recht verbreitet, ne App verwendet eine andere Terminal App, die Kommunikation geht ueber stdin und stdout ...

    2. InProzess, aber getrennte Übersetzungseinheiten -> shared libraries, aka Dlls. Können beide Seiten unterschiedliche runtimes verwenden. Nur der Datenaustausch (funktionsuafruf) muss binaerkompatibel sein, was bei C++ und Klassen ein Problem sein kann. Ich hab keine Ahnung wie natives C++ und Managed C++ da zusammenarbeiten. Aber auf nimmer sicher, wenn man sich auf C-Schnittstellen beschränkt, sollte das kein problem sein. Also deine C++ funktionalität hinter einem C-Interface verstecken und in ne Dll pappen, die dll in deinem Managed Code anziehen und verwenden. (so verbinded man auch module unterschiedlicher Sprachen ...)

    3. Selbe Übersetzungseinheit ...
    Da muss der Code auf beiden seiten compiler kompatibel sein, was bei Visual c++ nicht so das problem sein dürfte. Aus .Net heraus kann man IMHO auch nativen, aka unmanaged Code aufrufen. WIe man das am besten zusammenpappt, keine Ahnung 🙂



  • Vielen vielen Dank für Eure Antworten! Es erweitert meine Wissen sehr! 🙂 Angesicht des Zeitdrucks geh ich deswegen lieber auf Nummer sicher...Ich schreibe das ganze auf C# um...Hoffe, dass es dieses Mal funktioniert...


Log in to reply