![]() |
Problem mit Move
Hi,
diesmal habe ich ein Problem mit Move.
Delphi-Quellcode:
Aufruf:
procedure TPartition.DiscRead(d: TDisc; Offset: Cardinal;
Len: Integer; var Data); var ... CopyBuffer: array of Byte; begin ... // CopyBuffer bekommt vorher eine Länge, meistens 512 if Len > 0 then begin ReadSector(FHandle, (iwlba shl iwlba_shift) + lba, 1, CopyBuffer[0]); // wird ReadFile aufrufen Move(CopyBuffer, Data, Len); Showmessage(IntToStr(CopyBuffer[0])); end; end;
Delphi-Quellcode:
Das obere Showmessage ergibt 82, das ist auch richtig. Das untere im Aufruf jedoch 120...
function TMainForm.DiscRead(Offset: Int64; Count: Integer): TBytes;
begin SetLength(Result, Count); FActivePart.DiscRead(FActiveDisc, Offset, Count, Result[0]); Showmessage(IntToStr(Result[0])); end; Ich vermute es liegt irgendwie an dem Move, kommt es mit dem TBytes als Ergebnis-Typ vielleicht nicht klar? Edit: Das alte Lied.... es muss Move(CopyBuffer[0], Data, Len); heißen!! :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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