Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Large Integer? Welcher Typ in Delphi

  Alt 7. Dez 2007, 18:40
also dann ist es wohl ein Fehler im MSDN?

weil LARGE / LONGLONG = 64 Bit

Plargeinteger = Pointer/Integer also wieder 32 Bit ... wird die API wohl doch nur 32 Bit haben wollen

und dieses _KEY_BASIC_INFORMATION hätte ich so Übersetzt
Delphi-Quellcode:
TKeyBasicInformation = packed record
  Time: TFileTime;
  TitleIndex: LongWord;
  NameLength: LongWord;
  Name: Array[0..0] of WideChar;
end;
stimmt sozusagen mit deinem überein.



mit KEY_INFORMATION_CLASS mußt du erstmal aufpassen ... entweder du sorgst dafür daß dieses Set 4 Byte groß ist (standardmäßig macht Delphi dieses nur 1 Byte klein)

oder du definierst es so:
Delphi-Quellcode:
type
  KEY_INFORMATION_CLASS = ULONG;

const
  KeyBasicInformation = 0;
  KeyCachedInformation = 1;
  KeyNameInformation = 2;
  KeyNodeInformation = 3;
  KeyFullInformation = 4;
  KeyVirtualizationInformation = 5;
ich mach's gern auch so ... da sieht man den Zusammenhang
Delphi-Quellcode:
type KEY_INFORMATION_CLASS = ULONG;
const KeyBasicInformation = KEY_INFORMATION_CLASS(0);
      ...
      KeyVirtualizationInformation = KEY_INFORMATION_CLASS(5);
PS: const KeyBasicInformation: KEY_INFORMATION_CLASS = 0; geht nicht, weil Delphi macht dann eine "konstante" Variable draus -.-''


[add]
hast du nochmal die Parameter deiner APIs geprüft?

VAR, CONST und sowas kennt die WinAPI (C) ja sozusagen nicht

NtQueryKey:
var ResultLength: PULONG würde ich da eher als var ResultLength: ULONG vermuten (kenn jetzt aber die API-Definitionen nicht, aber es wird doch wohl PULONG ResultLength; sein).
$2B or not $2B
  Mit Zitat antworten Zitat