Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi DLL, Function und zwei Rückgabewerte (https://www.delphipraxis.net/188336-dll-function-und-zwei-rueckgabewerte.html)

matashen 22. Feb 2016 13:41

DLL, Function und zwei Rückgabewerte
 
Hallo zusammen,

ich such jetzt schon seit einer Stunde, find aber nichts.
Also bitte keine Suche-links-Ergebnisse....
Ich hab eben grad ne Hirnblockade....

Ich hab eine DLL in der ich Text an die Anwendung übergeben will, und zwar nicht als Result, da ich dort den möglichen Fehlercode übergeben will.

Kann ich zwei Rückgabewerte haben?

Ich hätte das mal probiert, bekomm aber keine Daten zurück (ausser eben das Result der Function
Delphi-Quellcode:
function get_Fieldtext(Fieldname:PWidechar; Productnumber:PWidechar; Fieldresult:PWidechar):Integer; stdcall;
    external 'datenblattbridge.dll';
Dabei wäre das Feld Fieldresult mein Ergebnis.
Delphi-Quellcode:
var a:String;
    ab,send_char1,send_char2:PWidechar;
    i:Integer;
....
      Getmem(send_char1,255);
      Getmem(send_char2,255);
      Getmem(ab,255);
      a:=auftrag.SAP;
      send_char1:=Pchar('test');
      send_char2:=PChar(a);
      i:=get_Fieldtext(send_char1,send_char2,ab);
      if i=0 then Kunde_Label.caption:=String(ab);
...
in der dll siehts so aus

Delphi-Quellcode:
Fieldresult:=PWidechar(mystring[Fieldnumber]);
wenn ich fieldresult zum Test in eine Logdatei wegschreibe, passt der Rückgabewert (String/PChar). Nur als Übergabe kommt nix an.

was mach ich falsch?

Danke schon mal!

Gruß Matthias

baumina 22. Feb 2016 14:02

AW: DLL, Function und zwei Rückgabewerte
 
Als var:

Delphi-Quellcode:
function xyz(Param1 : Integer; var Param2 : Integer) : Integer;


Hier wird der Wert, der in Param1 geändert wurde nicht zurückgegeben, der in Param2 wird zurückgegeben.

nahpets 22. Feb 2016 14:04

AW: DLL, Function und zwei Rückgabewerte
 
Wenn's nicht in 'ner DLL ist, muss doch ein var vor den Parameter:
Delphi-Quellcode:
function get_Fieldtext(Fieldname:PWidechar; Productnumber:PWidechar; var Fieldresult:PWidechar):Integer; stdcall;
    external 'datenblattbridge.dll';
Geht das bei DLL's nicht?

matashen 22. Feb 2016 14:05

AW: DLL, Function und zwei Rückgabewerte
 
Danke Baumin,

genau das vars :)

Wieder was gelernt


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 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