![]() |
I wonder why
Delphi-Quellcode:
Nun sitze ich hier und frage mich, verstehe ich nichts mehr
type
SCSI_PASS_THROUGH_DIRECT = record Length : Word; ScsiStatus : Byte; PathId : Byte; TargetId : Byte; Lun : Byte; CdbLength : Byte; SenseInfoLength : Byte; DataIn : Byte; DataTransferLength : ULONG; TimeOutValue : ULONG; DataBuffer : Pointer; SenseInfoOffset : ULONG; Cdb : Array[0..15] of Byte; end; SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER = record Spt : SCSI_PASS_THROUGH_DIRECT; Filler : ULONG; SenseBuf : Array[0..31] of Byte; end; var a : Konstanten.SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER; //// 77 byte sizeof b : Laufwerke.SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER; //// 80 byte sife of bei SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER sizeof sollte 77 byte rauskommen was für die Anwendung leider falsch ist es sollten 80 byte sein. die Version a ist in einer externen unit die Version b ist in der Version von delphi praxis wo ich leider die Referenz nicht mehr finde die frage wo kommen die 3 byte unterschied her. ps ich hoffe ich bin verständlich ich bin gefrustet und nicht mehr ganz nüchtern |
AW: I wonder why
Die ersten acht Felder im SCSI_PASS_THROUGH_DIRECT belegen zusammen 9 Byte. Wenn das Align auf 4 Byte gestellt ist, wird der nachfolgende ULONG auf die nächste 4-Byte-Grenze gesetzt (= 12). Das sind deine zusätzlichen 3 Byte.
Mit der Direktive {$A4} wird der record 80 Byte haben, während er mit {$A1} 77 Byte hat. |
AW: I wonder why
Tipp/Suchworte:
Data Alignment / Speicherausrichtung packed record Damit wirst'e hier im Forum und sonstwo im Netz alles finden. ![]() |
AW: I wonder why
Hi,
wähle bitte für deinen Thread auch noch einen Titel, an dem man zumindest erahnen kann, worum es geht. LG, Frederic |
AW: I wonder why
Vielleicht ein Wonderwoman Thread ? :)
gruss |
AW: I wonder why
Wow ihr seit gut Danke.
Ganz verstanden habe ich das nicht. Muss mir das mal in aller Ruhe anschauen.:stupid: PS Ihr habt ja recht nur ich dachte dafür gibt es eh keine Antwort und ich war angeschwippst |
AW: I wonder why
Zitat:
(nur auf einige Fragen, wie z.B. nach dem Sinn des Lebens, behalten wir Die für uns :twisted:) don't drink and prog |
Data Alignment / Speicherausrichtung /packed record
Zitat:
Ich verstehe noch nicht ganz wie man auf die Compiler Direktiven kommt. Kann ich das wo nachlesen. |
AW: I wonder why
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz