Thema: Delphi Schlüsselwort absolute

Einzelnen Beitrag anzeigen

Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: Schlüsselwort absolute

  Alt 21. Aug 2007, 12:33
Zitat von Dezipaitor:
Frage:
Wie würde man den untenstehenden Quelltext schreiben, ohne absolute zu verwenden?

Delphi-Quellcode:
type
  //aus jwaACLui.pas
  PSI_ACCESS = ^SI_ACCESS;
  {$EXTERNALSYM PSI_ACCESS}
  _SI_ACCESS = record
    pguid: LPGUID;
    mask: ACCESS_MASK;
    pszName: LPCWSTR; // may be resource ID
    dwFlags: DWORD;
  end;
  {$EXTERNALSYM _SI_ACCESS}
  SI_ACCESS = _SI_ACCESS;
  {$EXTERNALSYM SI_ACCESS}
  TSiAccess = SI_ACCESS;
  PSiAccess = PSI_ACCESS;

function GetAccessNames(out iCount : Cardinal): PSI_ACCESS;
var siArr : array of SI_ACCESS absolute result;
    i : Cardinal;
begin
  iCount := 32;
  GetMem(result, Sizeof(si) * iCount);
  {result = siArr}
  for i := 0 to iCount -1 do
  begin
    hier zugriff auf siArr[i] ganz leicht
  end;
end;
IMO sollte es funktionieren, wenn PSI_ACCESS als Pointer auf ein Statisches Array definiert wird. Also:

Delphi-Quellcode:
type
  PSI_ACCESS = ^TSI_ACCESS;
  TSI_ACCESS_Array = Array[0..high(Integer)] of SI_ACCESS;
Natürlich darfst du so nie eine Variable direkt vom Typ TSI_ACCESS_Array anlegen, da sonst dein Stack sein voll dürfte.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat