Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: EnumPrinterDrivers = Zugriffsverletzung (Anfängerfrage)

  Alt 10. Mär 2017, 15:42
Ok, das bestätigt dann auf jeden Fall meine Vermutung, dass im Buffer auch noch die dazugehörigen Strings abgelegt werden und nicht nur die DRIVER_INFO_2 Strukturen. Mit dem GetMem Beispiel sollte es aber funktionieren. Zur Erklärung:
Buf ist hier als Zeiger deklariert, welcher nach dem Aufruf der API dann auf die erste DRIVER_INFO_2 Struktur zeigt. Mit dem Inc wird der Zeiger um SizeOf(TDriverInfo2) erhöht, zeigt also danach auf das 2./3./n-te Element.

Hier fällt mir grade auf, dass in meinem Beisüiel das FreeMem am Ende so natürlich nicht funktioniert, da sich der Zeiger ja geändert hat. Den initialen Buffer-Pointer (direkt nach dem GetMem Aufruf) müsstest du dir also sichern, bevor du anfängst zu iterieren.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat