![]() |
Delphi-Version: 10.3 Rio
Aufruf einer function von Delphi zu einer C++ Dll
Ich nutze eine DLL in Delphi. Mit Delphi 2005 klapp alles . Mit Delphi 10.3 erhalte ich keine Ergebnisse in "rc_getback" von einem Funktionsaufruf zurück. Das Einbinden der DLL mit LoadLibrary klappt. Ich erhalte auch Reaktionen mit einfachen Aufrufen. Nur der unten stehende Aufruf "tcs_buch_xwork" liefert keine Ergebnisse, auch keine Fehler.
This ist the function in the DLL tcs_buch_xwork : function (wert: pointer; plz: pointer; pzart: integer; dummy: integer; rc_getback: pointer; ref:pointer) : smallint;stdcall; I get the address for the call @tcs_buch_xwork := GetProcAddress(NameHandle, 'tcs_buch_xwork'); This is how I use the function: DLLFehler means DLLerror if @tcs_buch_xwork <> nil then DLLFehler := tcs_buch_xwork (ps, pplz, cc, dummy, @rc_getback, pNameFehler); |
AW: Aufruf einer function von Delphi zu einer C++ Dll
1. Hast du den C-Header mit der Original-Definition oder eine Dokumentation dazu?
2. Sind rc_getback und ref Zeiger auf Strings? 3. Kannst du uns die Typen deiner Variablen ps, pplz, cc, dummy, @rc_getback, pNameFehler zeigen? Vermute hier Problem wegen Unicode-Umstellung (PChar -> PAnsiChar oder PWideChar). |
AW: Aufruf einer function von Delphi zu einer C++ Dll
Hallo und vielen Dank für die schnelle Antwort.
Die Beschreibung der DLL-Schnittstelle hab ich nicht sofort zu Hand. Da nuss ich suchen. Dauert aber ein bisschen. Ist schon sehr lange im Einsatz. Die Vermutung mit den veränderten Parametern hatte ich auch. Allerdings kann ich dieses umsetzen noch nicht. Meine Variablendeklarationen sind rc_ getback : array [0..600] of char; OK : boolean; BuchungsProtokoll : string; DLLFehler : smallint; NameAktiv : boolean = false; NameHandle : THandle; plz : array [0..10] of char; pplz : pchar; tlv : integer; ptlv : pchar; cc : smallint; dummy : smallint = 0; NameFehler : smallint; pNameFehler : pointer; ref ist der pNameFehler - In NameFehler wird eine FehlerNummer zurüchgegeben. |
AW: Aufruf einer function von Delphi zu einer C++ Dll
Frage mich wie das ohne out, var Parameter überhaupt funktionieren kann siehe ref:pointer
|
AW: Aufruf einer function von Delphi zu einer C++ Dll
Wenn es mit Delphi 2005 funktioniert hat, versuch einmal, alle Chars als AnsiChars und alle PChars als PAnsiChars zu deklarieren.
|
AW: Aufruf einer function von Delphi zu einer C++ Dll
@DaddyH Ja, danke das probiere ich aus.
|
AW: Aufruf einer function von Delphi zu einer C++ Dll
Hallo dpKlaus,
Du kannst Deinen QuellCode hier mit Hilfe des Delphi-Symbols (= Helm mit rotem Kamm gleich über der ersten Zeile im Editor) richtig formatieren, damit er besser lesbar ist. Gruß, Andreas PS: Das geht auch nachträglich über den Button "Bearbeiten" |
AW: Aufruf einer function von Delphi zu einer C++ Dll
@DaddyH Vielen Dank die Hilfe. Es funktioniert wieder. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 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