Autor Beitrag
Janus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 31.01.04 14:09 
Hallo zusammen, ich bin ein ziemlicher Delphineuling und habe folgendes Problem: Warum lässt sich folgender (Pseudo) Code nicht komillieren?

type TLevel = class
speedBat: Single;
cBall: Byte;
end;

lvl: TLevel;
lvl := TLevel.Create;

iBytesWritten: Cardinal;
FileWrite(hFile,Pointer(lvl),sizeof(TLevel),iBytesWritten,nil);

sizeof(TLevel) gibt natürlich 4 zurück (zumindest auf einem 32-Bit system). Wie kann ich erreichen, dass ich die grösse der Klasse bekomme? Wieso lässt sich der lvl mit Pointer(lvl) nicht in einen generischen Pointer casten?

in c würde das so aussehen:

FileWrite(hFile,(void*)lvl,sizeof(TLevel),iBytesWritten,0x00);

Ich hoffe, es kann mir jemand helfen!
Einen Lieben Gruss Janus

_________________
Don't give in the hate, that leaves to the dark side of the force !!!
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 31.01.04 18:15 
tja, wenn so einfach wäre, eine Klasse zu sichern. Warum machst du nicht ein Record draus? Also statt Class Record. Dann funktionierts auch mit dem Sichern. Ansonsten müßte deine Klasse routinen zum Berechnen und Sichern seiner Daten erstmal definieren. EIne Klasse ist nichts weiter als ein Zeiger. Woher soll dieser wissen, wie gross seine Daten sind?

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?