Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
24. Okt 2010
Ach stimmt ja, den Enum hab'sch übersehn.
Leider gibt es in Delphi nix Vergleichbares,
da es in C++ eher eine Bitmaske ist, bzw. der Enum in Delphi anders funktioniert, wo er mehr einen Bit-Index (für nur ein einziges Bit) für ein SET darstellt.
type
_VIRTUAL_DISK_ACCESS_MASK = Cardinal;
const
VIRTUAL_DISK_ACCESS_ATTACH_RO = $00010000;
VIRTUAL_DISK_ACCESS_ATTACH_RW = $00020000;
...
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
24. Okt 2010
Gut, dann scheint schonmal (laut den Definitionen, also falls diese stimmen) die Signatur zu stimmen.
Bleiben also nur noch die Records oder doch die Belegung der Parameter.
Hast du es auch schonmal als Overlappt-IO versucht?
Und das auskommentierte m_h := 0; wurde auch schonmal verwendet?
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
24. Okt 2010
@SirThornberry: Ist diese auf 0 gesetzt, dann wird vom System (Windows) eine erstellt.
Eventuell wird in C++ ja dieser Speicherbereich automatisch mit Nullen initialisiert.
Auf die Schnelle würde ich erstmal dieses auspprobieren.
var path : WideString;
path := ExtractFilePath(Paramstr(0)) + 'test.vhd';
dwRet := CreateVirtualDisk(@StorageType, PWideChar(path), ...