![]() |
AW: Zydis - X86/X86-64 Disassembler Library
Ahh, habe das Problem endlich finden und beheben können. Delphi übergibt Structs, welche mit
Delphi-Quellcode:
gekennzeichnet sind standardmäßig als Zeiger. FPC pusht unter 32-Bit anscheinend lieber den kompletten Inhalt auf den Stack :wall: Habe das Interface manuell auf Zeigertypen geändert. Ist so im Grunde eh näher am C-Original.
const
|
AW: Zydis - X86/X86-64 Disassembler Library
Ja, CONST ist wie VAR, nur halt "schreibgeschützt" ... das gilt für Typen über 32 Bit. (bis 32 Bit wird meistens optimiert und dann doch der Wert, anstatt einem Zeiger übergeben)
Und gemanagte Typen, ala String, Interface usw. sind eh immer bissl anders. Mit einer anderen Aufrufkonvention könnte sich das Verhalten eventuell auch ändern. |
AW: Zydis - X86/X86-64 Disassembler Library
Zitat:
Delphi-Quellcode:
jetzt explizit
const TType
Delphi-Quellcode:
verwendet wird.
PType
Edit: Wobei scheinbar
Delphi-Quellcode:
auch bei Delphi keine Garantie für "pass by reference" ist. In neueren Versionen gibt es hierfür wohl den
const
Delphi-Quellcode:
Decorator. Für FreePascal kann man
[Ref]
Delphi-Quellcode:
verwenden. Um einheitlich zu bleiben habe ich mich jetzt aber für die expliziten Zeigertypen entschieden.
constref
|
AW: Zydis - X86/X86-64 Disassembler Library
Hi,
da ist ein kleiner Fehler in der GitHub Beschreibung... Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (64-bit) / C:\Windows\SysWOW64\ (32-bit) directory Extract the Zydis32.dll or Zydis64.dll from the Bin32/Bin64 folder to the directory that contains your application or install the library to your C:\Windows\System32\ (32-bit) / C:\Windows\SysWOW64\ (64-bit) directory Cracks&Nerds wissen es - aber Neulinge eher nicht... |
AW: Zydis - X86/X86-64 Disassembler Library
Zitat:
|
AW: Zydis - X86/X86-64 Disassembler Library
Jupp, es heißt im Printip "Windows 32-Subsystem on Windows 64"
Ja, die Namen sind schon etwas krank verwirrend. System32 = 64 Bit WoW64 = 32 Bit :freak: Außerdem heißt die API weiterhin Win32, auch wenn sie 64 Bit sein kann. (Vorteil, weil wäre noch verwirrender, wenn 64 Bit eine eigene API hätte, so wie damals Win16) Der Grund ist aber nicht Microsoft, sondern weil man versuchte die Fehler bescheuerter Programmierer auszumerzen, welche selbst heute immernoch mit hartcodierten Pfaden arbeiten. Und auch der Grund, warum die SystemPartition seit 'ner Weile immer C ist, auch wenn sie nicht die erste Partition der Festplatte ist. (ursprünglich wurden Partitionen standardmäßig einfach durchgezählt. zwei mögliche Diskettenlaufwerke und dann C die erste Partition der ersten Festplatte) |
AW: Zydis - X86/X86-64 Disassembler Library
Zitat:
Ich persönlich lege den DLL-Pfad sogar im Manifest fest. Sicher ist sicher :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz