AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Aufruf einer function von Delphi zu einer C++ Dll
Thema durchsuchen
Ansicht
Themen-Optionen

Aufruf einer function von Delphi zu einer C++ Dll

Ein Thema von dpKlaus · begonnen am 3. Jun 2021 · letzter Beitrag vom 4. Jun 2021
Antwort Antwort
dpKlaus

Registriert seit: 1. Nov 2020
14 Beiträge
 
#1

Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 15:17
Delphi-Version: 10.3 Rio
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);
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 16:01
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).
  Mit Zitat antworten Zitat
dpKlaus

Registriert seit: 1. Nov 2020
14 Beiträge
 
#3

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 17:22
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.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 17:26
Frage mich wie das ohne out, var Parameter überhaupt funktionieren kann siehe ref:pointer

Geändert von venice2 ( 3. Jun 2021 um 20:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#5

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 17:44
Wenn es mit Delphi 2005 funktioniert hat, versuch einmal, alle Chars als AnsiChars und alle PChars als PAnsiChars zu deklarieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
dpKlaus

Registriert seit: 1. Nov 2020
14 Beiträge
 
#6

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 18:34
@DaddyH Ja, danke das probiere ich aus.
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 3. Jun 2021, 20:47
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"
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
dpKlaus

Registriert seit: 1. Nov 2020
14 Beiträge
 
#8

AW: Aufruf einer function von Delphi zu einer C++ Dll

  Alt 4. Jun 2021, 18:02
@DaddyH Vielen Dank die Hilfe. Es funktioniert wieder.
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz