[c++] char*<-system::string* konvertierungsproblem

pflegefall

Grünschnabel
Nachdem ich lange mit dem Borland Builder C++ 6 gearbeitet habe, bin ich nun auf das Visual Studio .NET umgestiegen.
Dort versuche ich verschiedenste Anwendungen zu realisieren und ständig hapert es an einem "einfachen" aber grundlegenden Problem.

Wenn ich beispielsweise den Inhalt einer textBox in eine Float Variable einlesen möchte habe ich das unter Borland Builder folgendermaßen realisiert:

float tmp_float = StrToFloat(textBox1->text);

und fertig ist der Lack. :)

Wenn ich ähnliche Aktionen in Visual Studio .Net durchführen möchte kommt immer die Meldung:

error C2664: 'strtod': Konvertierung des Parameters 1 von 'System::String __gc *' in 'const char *' nicht möglich

Das stellt für mich ein generelles Problem dar, da so ziemlich alle Funktionen char* erwarten :-( [atoi, atof, strtod]

Wo liegt der generelle Denkfehler?
Warum ist das unter Borland Builder so viel einfacher?
 
Hallo,

Ist mit Textbox ein Eingabefeld, z.B. auf einem Dialog gemeint? Wie kommst du denn an Text der Textbox?
Fall Du mit der MFC arbeitest, kannst du die Textbox mit einem CString-Objekt verbinden und dieses kannst du direkt als Eingabe für die Konvertierungsfunktionen verwenden.

Gruß
MCoder
 
Momentan versuche ich "Windows Forms Anwendungen (.NET)" zu erstellen... Zumindest wähle ich das anfänglich immer als "Projektart" aus ;-).
Vielleicht ist ja auch das das Problem?
Mit textBox ist ein Eingabefeld gemeint, welche ich mit Hilfe der Toolbox auf dem Form platziert habe :)
Wie ich an den Text der Textbox komme ist ja eigentlich gerade die Frage ;-)
Setzen, bzw. verändern kann ich ihn mit:

textBox1->Text = S"hier Text";

Nur auslesen bzw. Konvertieren und in Variable schreiben klappt halt nicht, es sei denn ich definiere mir eine Variable

string *vstr_var = textBox1->Text;

das funktioniert... Bringt mich aber nicht weiter, da ich ja eine Typen konvertierung benötige.

Vielleicht sind meine Probleme ja auch einfach ein wenig zu banal ;-)

Kann mir jemand ein gutes Buch für "Borland Umsteiger" empfehlen?
 
Hallo,

mit "Windows Forms Anwendungen" kenne ich mich auch nicht so besonders aus, da ich entweder nur mit der MFC oder bei Verwendung von .NET gleich mit C# programmiere.

Zumindest für dein Konvertierungsproblem könnte ich dir eine Lösung vorschlagen:
Code:
double dValue = System::Convert::ToDouble(this->textBox1->Text);
Wenn nicht unbedingt "float" nötig ist, sollte man lieber mit "double" arbeiten, ansonsten kann man den Double-Wert der Konvertierung einfach auf float casten.

Gruß
MCoder
 

Neue Beiträge

Zurück