Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

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

AW: Übergabe von Interface an DLL führt zu AccessViolation

  Alt 8. Okt 2016, 01:17
Wichtig ist eigentlich nur die letzte Zeile - da sieht man, dass intern die UStrFromPWChar Funktion aufgerufen wird, um den PChar in String zu konvertieren.
Code:
Unit1.pas.30: S := 'hallo';
005C9BA3 B8D89B5C00       mov eax,$005c9bd8 < EAX = S, wird mit Adresse von 'hallo' initialisiert
005C9BA8 8945F8           mov [ebp-$08],eax < S wird auf dem Stack gesichert
Unit1.pas.31: T := String(S);
005C9BAB 8D45F4           lea eax,[ebp-$0c] < Adresse von T wird in EAX geschrieben
005C9BAE 8B55F8           mov edx,[ebp-$08] < S wird vom Stack geholt und in EDX geschrieben
005C9BB1 E8EE0AE4FF      call @UStrFromPWChar < Aufruf der Funktion mit EAX und EDX als Parameter
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat