AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Übergabe von Interface an DLL führt zu AccessViolation
Thema durchsuchen
Ansicht
Themen-Optionen

Übergabe von Interface an DLL führt zu AccessViolation

Ein Thema von Aviator · begonnen am 7. Okt 2016 · letzter Beitrag vom 8. Okt 2016
 
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#12

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

  Alt 7. Okt 2016, 19:39
DelphiStrings sind zwar intern zu PChar kompatibel (PChar(String) ist also OK), aber andersrum natürlich nicht (niemals String(PChar) ).
Wie denn dann? Hast du ein Beispiel?
Doch doch, das kannst du ruhig machen. Delphi Hilfe sagt zur StrPas Funktion beispielsweise
Zitat:
This function is provided for backwards compatibility only. To convert a null terminated string to an AnsiString or native Delphi language string, use a typecast or an assignment.
Und im Assembly sieht man auch, dass Delphi da Compiler Magic betreibt:
Code:
Unit1.pas.30: S := 'hallo';
005C9BA3 B8D89B5C00       mov eax,$005c9bd8
005C9BA8 8945F8           mov [ebp-$08],eax
Unit1.pas.31: T := String(S);
005C9BAB 8D45F4           lea eax,[ebp-$0c]
005C9BAE 8B55F8           mov edx,[ebp-$08]
005C9BB1 E8EE0AE4FF      call @UStrFromPWChar
Alles klar. Danke schön für die Infos.

Mit dem Assembly Code kann ich allerdings, leider muss ich sagen, nicht wirklich viel anfangen. Verstehe da nichts von. Würde es aber gerne. Nur sieht es für mich immer sehr kompliziert aus.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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