Einzelnen Beitrag anzeigen

mr_emre_d
(Gast)

n/a Beiträge
 
#13

Re: Wie ermittelt man die Grenzen mehrdimensionaler Arrays?

  Alt 7. Mai 2009, 17:18
Ja stimmt - deshalb ja auch >>brutal<<

Mir fällt leider keine Funktion ein, mit der man die Protektion eines Bereiches im Speicher auslesen kann ..

Ich hab mal den Try-Except Block weggetan und es mit VirtualProect - auch keine gute Lösung - gelöst

Delphi-Quellcode:
function CntArrDimensions( const Arr: Pointer ): String;
var
  Protection: Cardinal;
begin
  VirtualProtect( pCardinal( Cardinal(Arr^) - 4 ), 4, PAGE_READWRITE, Protection );
  VirtualProtect( pCardinal( Cardinal(Arr^) - 4 ), 4, Protection, Protection );
  if Protection = 0 then
    Exit;
  Result := '0..' + IntToStr( pCardinal( Cardinal(Arr^) - 4 )^ - 1 ) + ' ' + CntArrDimensions( Pointer( Cardinal(Arr^) ) );
end;
Edit:
@Daniel - Kuhle Signatur
  Mit Zitat antworten Zitat