Cfile -format festlegen
-
So, erstmal danke an euch alle. Habs jetzt hinbekommen, dass er mir zahlen schreibt, aber er schreibt statt z.b bd nur b. könnt ihr mir sagen woran das liegt?
hab das so:
CString p;
p.Format(_T("%02x",puffer); //puffer ist vorher def
file.Write(p,2);
-
So jetzt schwer zu sagen, aber bist du dir sicher das in puffer auch genügend daten sind?
Wobei 'X' gibt Großbuchstaben aus, sollteste vielleicht mal versuchen
-
Wenn ichs debugge, dann steht im p bd, aber in die datei schreibt es immer nur die hälfte.
Danke, hab schon x und X ausprobiert.
-
wenn ich im debug-Modus auf str gehe, dann öffnen sich register und dann steht da: ATL::CSimpleString<wchsr_t,1> was bedeutet das? Ich denke deswegen schreibt er nur das erste zeichen hin.
-
ich meine auf p gehe nicht str
-
na probier doch mal
CString p; p.Format(_T("%02x",puffer); //puffer ist vorher def file.Write(p,p.GetLenght());somit ist gewährleistet das er die gesammte länge des Strins schreibt und nicht das was du im vorgibst...
-
Das funktioniert auch nicht.
Wie gesagt ich glaube dass es an dieser Information liegt:
Also wenn ich mit der Maus auf p gehe, dann öffnet sich
p "bd" -> ATL::CSimpleString<wchar_t,1>...-> 98 L'b'
Und genau das was in den einfachen Anführungszeichen steht wird reingeschrieben, also hier 'b'Deswegen denke ich wenn man ATL... <wchar_t,2> umstellen könnte, dann würde es gehen.
-
Hallo,
du hast offensichtlich Unicode in den Projekt-Eigenschaften eingestellt (erkennbar am w_char_t!), d.h. alle Zeichen sind zwei Byte gross. Dann musst du natürlich auch die doppelte Länge (GetLength zählt nur die Zeichen, und das sind nur zwei, aber beide sind zwei Byte lang) schreiben:
file.Write(p,p.GetLength() * 2);Ansonsten kannst du Unicode auch umschalten, und dann ohne Verdopplung der zu schreibenden Länge auskommen.
MfG,
Probe-Nutzer
-
Man ich danke dir,Probenutzer. Genau das wars. Vielen Dank
-
Und wie schaltet man unicode um?
-
Projekteinstelungen -> General -> Characterset!
-
Wenn ich es deaktiviere dann kommt der Fehler : Failed to save the updated manifest to the file ".\Debug\EKG1.exe.embed.manifest". Falscher Parameter.
Was bedeutet das?
-
Versuche mal einen kompletten Rebuild deines Projektes (Debug -> Rebuild).
Er kann die Änderungen nicht in das Manifest der Anwendung übernehmen.Bei nem Rebuild erstellt er auch das Manifest nochmal neu.
Bei Fragen zum Manifest-File:

http://de.answers.yahoo.com/question/index?qid=20090928112723AA5YRwJ