Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#10

Re: Union Übersetzung nach Pascal

  Alt 12. Mär 2007, 18:27
tja, das kommt wohl von den vielen Varianten -.-''

P := GetMemory(Size);
GetMem(P, Size);
P := SysGetMem(Size);
...

wobei GetMem eine Exception (EOutOfMemory) auslößt, wenn der gewpnschte Speicher nicht reserviert werden kann und die Anderen "nur" P=nil zurückliefern (also ohne Exception).


Was gibt DeviceIoControl für'n Fehler aus?
(bei 'nem Fehler wird nichts in den Record geschrieben, daher könnten auch die "komischen" Werte kommen ... standen halt vorher schon so drin)
Delphi-Quellcode:
Size := SizeOf(_DRIVE_LAYOUT_INFORMATION_EX) + SizeOf(_PARTITION_INFORMATION_EX) * 31;
GetMem(P, Size);
Try
  FillChar(P^, Size, 0);
  If DeviceIoControl(H, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, nil, 0,
    P, Size, OutBytes, nil) Then Begin
    
    ...

  End Else ShowMessage(SysErrorMessage(GetLastError));
Finally
  FreeMem(P);
End;
Und wie hast du dir eigentlich das Handle zur Partition geholt?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat