Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

HILFE!!!!!

Ich habe das Problem beim Konventieren von CString zu double oder interger mit atof oder atoi (eVC 3.0 für PocketPC 2002).

Ich habe bereits viele Möglichkeiten (z.B. GetBuffer() oder (char*) bzw. (const char*)) ausprobiert. Nichts funktieoniert für Pocket PC. Visual Studio C++ 6 konnte allerdings ohne schwierigkeiten umwandeln.

Wo liegt das Problem und wie kann ich die CString-Objekte umwandeln.

Geschrieben
Nichts funktieoniert für Pocket PC.

Das ist eine denkbar schlechte Fehlerbeschreibung. Du solltest immer genau schreiben, was nicht funktioniert. Wenn du eine Fehlermeldung bekommst, solltest du die vollständig angeben. Das erleichtert die Diagnose ungemein. Dem Arzt sagst du doch auch nicht nur, dass es weh tut, sondern auch wo ;)

Meine Vermutung:

CString basiert auf TCHAR, das wiederum ist unter Windows CE immer WCHAR, also sollte es mit _wtof funktionieren.

Geschrieben

Ich beschreibe das Problem genauer.

CEdit m_Edit;

CString str;

double y;

m_Edit.GetWindowText(str);

y = atof(str);

Fehlermeldung: error C2664: 'atof' : cannot convert parameter 1 from 'class CString' to 'const char *'

Ich habe gerade auch die Möglichkeit mit _wtoi (_wtof gibts nicht) ausprobiert, der Compiler meldet zwar keinen Fehler die compilierte Anwednung gibt jedoch an Stelle interger Zahl nur 0.

Ich habe auch erkannt, daß das Problem in der Konventierung zwischen Unicode und ASCII (LPTSTR und char*) ist. Aber ich finde einfach KEINE Lösung!!!!!!!

Geschrieben
Aber ich finde einfach KEINE Lösung!!!!!!!
Ganz ruhig, kein Grund für multiple Satzzeichen ;)

Versuch bitte mal das hier:

CString str;
double y;

m_Edit.GetWindowText(str);
wchar_t* stop;
y = wcstod(str, &stop);[/CODE]

Geschrieben
was bedeutet der zweite Parameter wchar_t* stop?
Wenn die Funktion ein Zeichen findet, das sie nicht mehr der Zahl zuordnen kann (z.B. ein Buchstabe außer e), dann setzt sie den Zeiger, dessen Adresse du als zweiten Parameter übergibst, auf dieses Zeichen. Vermutlich brauchst du das gar nicht, aber laut MSDN Library darf man da keinen Nullzeiger angeben.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...