Prob mit File lesen nach CBuilder Versionswechsel ?!
-
Moinsn,
folgendes: habe da was entdeckt, und zwar beim Lesen einer binären Datei.
int fHandle; fHandle = open( file.c_str(), O_BINARY |...
dann lesen...
So, jetzt gehts los. Die ersten 32 Byte der gelesenen Datei sind noch ok. Werden in eine struct(TFileHead) geholt und ausgewertet. Passt. Danach hole ich mir den Offset des ersten Zeichens nach diesen 32 Byte.
fBuffer = (T_Info*) &FBinaryData[sizeof(TFileHead)];
Und da kommt das Problem.
Beim CBuilder 4 ist der Offset 0U, beim CBuilder 2007 ist er 256U
Dementsprechend das gelesene Ergebnis. Beim 4erbeim 2007er
Was hat sich da geändert? Code ist in beiden Fällen identisch( Lang lebe Copy&Paste)
grüssle
-
Smitty schrieb:
fBuffer = (T_Info*) &FBinaryData[sizeof(TFileHead)];
Und da kommt das Problem.
Beim CBuilder 4 ist der Offset 0U, beim CBuilder 2007 ist er 256UWie genau kommst du an den Offset? ((char*) fBuffer) - FBinaryData (vorausgesetzt, daß FBinaryData vom Typ char ist)?
-
Ne is klar, unvollständiger Code. Keine Absicht. Hab das Prob aber wohl gefunden. Liegt wohl an der Datenausrichtung.
Muss aber noch genau testen.grüssle
Edit: Lag an der Datenausrichtung. Prob gelöst