![]() |
AW: Array[0..0] Speicherreservieren
Oder halt einen dynamischen Array zu verwenden
|
AW: Array[0..0] Speicherreservieren
Zitat:
(Sind ja nur Pointer und hier werden ja direkt im Record mehrere hintereinanderliegende Strukturen erwartet) |
AW: Array[0..0] Speicherreservieren
Diese nichtfunktionierende Variante ist ein Versuch einer direkten Übersetzung der C-Header von Microsoft.
Dort kann man statische Arrays mit [0]-Länge deklarieren. (leider kennt Delphi sowas nicht, so daß man sich über den Sonderfall von [0..0] das Array mit einem Feld und ohne Bereichsprüfung zu nutzen) In den C-Vorlangen wird dann ebenfalls so gearbeitet, wie in meinem Beispiel. Aber wie gesagt, ich mochte diese Arrays auch nicht und hab das mit selbstdeklariert, womit ich mir dan die Resourcenschutzblöcke und einen Großteil der Speicherverwaltung erspart hab. (man darf auch mal Faul sein :angel2: ) [edit] OK, hier gibt es sogar mal ein [1]-Array im Original-Header ![]() (es ist also eine fast 1:1-Übersetzung) |
AW: Array[0..0] Speicherreservieren
Hallo
und danke an alle, damit geht es:
Delphi-Quellcode:
Die Thematik IOCTL_DISK_GET_DRIVE_LAYOUT kommt gesondert.
var D: ^DLI;
begin GetMem(D,SizeOf(DLI) + 15*SizeOf(PI)); end; Danke bis zum 17. |
AW: Array[0..0] Speicherreservieren
@himitsu
genau, nur das ich DRIVE_LAYOUT_INFORMATION_EX nicht verwenden darf; W2K lässt grüßen. |
AW: Array[0..0] Speicherreservieren
Hast du mal probiert das array als
Delphi-Quellcode:
zu definieren. Dann sollte auch SetLength funktionieren.
DLI = record
Count : DWORD; SIG : DWORD; PE : Array of PI; end; |
AW: Array[0..0] Speicherreservieren
@generic: Dann wäre es nicht kompatibel zu dem erwarteten C-Record. Es würde sogar mächtig krachen weil dann die interna des dynamischen Arrays überschrieben werden.
Denn das dynamische Arry an dieser Stelle stellt an einer anderen Stelle den Speicher zur Verfügung und nicht an der Stelle im Record. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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-2025 by Thomas Breitkreuz