Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Hier erstelle und lade ich den ofstream
C-/C++-Quelltext
1 2 3 std::ofstream textFile("Commands.txt"); textFile.write((char*)&szTitle, sizeof(G_Command_List.size())); textFile.close();
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (12.12.2015, 19:38)
Wenn du schon mit TCHAR arbeiten musst (wieso auch immer das der Fall sein mag)
Das .close() sollte nicht notwendig sein, denn der Destruktor des Stream macht das automatisch.
Es wurde schon drauf hingewiesen, aber da du das offenbar übersehen hast: Wie genau kommst du auf das sizeof(G_Command_List.size()) hier?
C-/C++-Quelltext |
|
1 |
G_Command_Vector.size() + 29 |
PS: Wieso genau besteht dein Command struct aus zwei einzelnen Zeichen. Die Namen dieser Member suggerieren mir, dass dort auch was nicht ganz in Ordnung sein kann...
C-/C++-Quelltext |
|
1 2 3 4 5 |
struct Command
{
TCHAR Name;
TCHAR Description;
};
|
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ein TCHAR ist ein einzelnes Zeichen. Also hat dot schon Recht, da sind nur zwei Zeichen im Struct.
Wenn du schon mit TCHAR arbeiten musst (wieso auch immer das der Fall sein mag)
Ich muss leider...
Ich hole nämlich einen Text aus einem Fenster mit GetWindowText und dort erwartet er ein TCHAR. Du hast ja auch geschrieben, dass man nur sehr selten Casts brauchen sollte.
Es wurde schon drauf hingewiesen, aber da du das offenbar übersehen hast: Wie genau kommst du auf das sizeof(G_Command_List.size()) hier?
Ich habe es zuerst nur mit einem G_Command_List.size() probiert, bekam dann aber nur 1 Buchstabe angezeigt. Danach habe ich das sizeof hinzugefügt und bekam plötzlich 4.
Und solange ich nicht genau weiss was der Fehler ist, dachte ich mir, ich lass es mal dort.
EDIT: @dot
Was ist den der Unterschied von einem normalen ofstream zu einem basic ofstream und wann sollte man welchen verwenden?
Und danke viel mals für den Tipp mit dem basic_ofstream
C-/C++-Quelltext |
|
1 |
typedef basic_ofstream<char> ofstream; |
Wenn du schon mit TCHAR arbeiten musst (wieso auch immer das der Fall sein mag)
Ich muss leider...
Ich hole nämlich einen Text aus einem Fenster mit GetWindowText und dort erwartet er ein TCHAR. Du hast ja auch geschrieben, dass man nur sehr selten Casts brauchen sollte.
Ein TCHAR ist ein einzelnes Zeichen. Also hat dot schon Recht, da sind nur zwei Zeichen im Struct.
Ich bild mir ein, dass wir diese Diskussion vor kurzem schonmal hatten, anyways: verwend GetWindowTextA()
Fangen wir mal so an: Was genau liefert G_Command_List.size()?
gar keiner, ofstream ist folgendermaßen definiert:
Am einfachsten ist es, wenn du direct die 'Unicode'-Varianten der WIN-API-Funktionen verwendest anstelle von den Macros.
Z.B. ist GetWindowText ein Macro, welches zu GetWindowTextW (Unicode), bzw GetWindowTextA (ANSI) aufgelöst wird.
Dann kannst du direkt mit WCHAR oder wchar_t arbeiten und musst nicht so viel auf den richtigen Zeichensatz achten.
Ich bild mir ein, dass wir diese Diskussion vor kurzem schonmal hatten, anyways: verwend GetWindowTextA()
Danke viel mals
Was sollte ich hier deiner Meinung nach verwenden?
Fangen wir mal so an: Was genau liefert G_Command_List.size()?
Hab gerade nachgeschaut.
Es liefert die aktuelle Anzahl der Elemente zurück
Und in was für einem Typ verpackt liefert es diese Anzahl?
Werbeanzeige