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.aspxAber man bemerke, wie geil du das Forum hier triffst! Du hast ein Problem mit C und C++/CLI und landest im C++-Forum...^^
-
http://www.c-plusplus.net/forum/263084
Siehe den fetten Satz.
-
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.