riesiges problem



  • Guten Tag, ich habe mir über folgendes problem bereits die Finger wundgegoogelt:

    ich habe ein C Programm geschrieben welches ich nun in eine mit Visual C++ 2010 Express entwickelte GUI einbetten will.

    ich habe in C viele variablen vom typ char und char* Deklariert welche ich jetzt in strings umwandeln muss um sie innerhalb meines C++ Projekts anwenden zu können.

    (sprich : Werte zwischenspeichern und verwenden)

    Da ich weder eine ahnung habe wie ich einen char oder char* in einen System::String oder System::String^ umwandle, NOCH lust habe jede variable einzeln zu konvertieren bin ich mit meinem Latein vollständig am Ende.
    Ich hoffe ihr könnt mir helfen

    ~h4wkeye



  • Die Visual Studio GUIs sind in C++/CLI geschrieben, und das ist nicht C++ 😉



  • bedeutet das, ihr könnt mir nicht helfen? 😞



  • h4wkeye schrieb:

    bedeutet das, ihr könnt mir nicht helfen? 😞

    Das bedeutet Du bist im falschen Unterforum. Vielleicht verschiebt Dich ja einer der Mods.



  • hab das unterforum gewechselt. /closerequest



  • Da ich weder eine ahnung habe wie ich einen char oder char* in einen System::String oder System::String^ umwandle, NOCH lust habe jede variable einzeln zu konvertieren bin ich mit meinem Latein vollständig am Ende.

    So wie ich dich verstehe, hast du die Funktionalität in der C-DLL gekapselt. Anstatt C++/CLI zu verwenden, kannst du folgendes machen:
    1. Mit C/C++ eine GUI herumstricken und dabei aus diversen Frameworks auswählen, u.a. WinAPI, MFC, Qt und wxWidgets.
    2. Mit C#/VB.NET eine GUI herumstricken und entweder WinForms oder WPF als GUI nutzen. Deine C-DLL kannst du mit DllImport (oder eventuell sogar als Referenz, wenn du eine Typbibliothek hast) einbinden.

    Wenn du dich für Option 1 entscheidest, dann wird die jeweilige String-Klasse des Frameworks einen Konstruktor für char* anbieten, z.B. std::string s("bla bla").
    Bei Option 2 kommt Marshalling in's Spiel. Aber char* mappt (je nach Verwendungszweck) auf System.String oder System.Text.StringBuilder.



  • Meine GUI ist eine windows forms anwendung.
    ich habe nur durch die char udn char* variablen kompatibilitätsprobleme wenn ich die funktionen mit der GUI verknuepfe



  • Ich halte nicht viel davon, aber das hier sollte klappen:

    char *foo = "Hallo welt";
    String^ bar = gcnew String(foo);
    


  • foobar 🙂 nun, danke für die hilfe aber es gibt noch ein anderes problem.

    mein prog hat mehrere 100 zeilen code und ich muss alle char und char' konvertieren...

    sorry fuer die umstaende



  • Tja, da kann man wohl nix machen, wenn du den Code direkt mit C++/CLI kompilieren willst.
    Deshalb sagte ich ja. C Code zur DLL kompilieren und ein paar Funktionen als Schnittstelle anbieten. Diese dann mit DllImport im Rahmen von C# nutzen. Dann musst du nur ein mal pro Funktion die Umwandlung angeben.



  • GPC, ich hab absolut kein plan 😮 ich programmier noch ned so lange. ich habe noch nie ne DLL kompiliert und von schnittstellen weiß ich soviel we ne uh von stabhochsprung...trotzdem vielen dank ! 🙂



  • Gibt es denn in keiner Weise eine (weniger aufwendige) möglichkeit?



  • Vielleicht hilft dir ja dies hier:
    http://www.codeproject.com/KB/mcpp/OrcasMarshalAs.aspx

    Aber man bemerke, wie geil du das Forum hier triffst! Du hast ein Problem mit C und C++/CLI und landest im C++-Forum...^^





  • Ich danke euch für die Antworten.

    //Bitte schließen.



  • Doch nicht schließen bitte.

    die "foobar" lösung von GPC funzt nicht :S andere ideen?



  • h4wkeye schrieb:

    Doch nicht schließen bitte.

    die "foobar" lösung von GPC funzt nicht :S andere ideen?

    Klar funktioniert das. Zeig mal lieber den Code und die Fehlermeldung.



  • so schon garnicht GPC.
    ich geh mir n forum suchen wo man vernünftig mit fragen umgeht anstatt azupampen "gib ma dies und das"
    tschau

    ~h4wkeye



  • Machs gut 😉
    Edit: aber mal ehrlich... Bei Google kannst du dir sicher sein, dass es nicht pampt!



  • h4wkeye schrieb:

    so schon garnicht GPC.
    ich geh mir n forum suchen wo man vernünftig mit fragen umgeht anstatt azupampen "gib ma dies und das"
    tschau

    ~h4wkeye

    Um vernünftig mit fragen umgehen zu können müssen die Fragen vernünftig gestellt werden. Lies dir bitte mal vor dem Fragen alle mit wichtig markierten Threads durch - solltest du auch in anderen Foren tun.


Log in to reply