![]() |
DLL Mit mehreren Results
Hallo
Ist es möglich, das eine DLL Function Mehrere Resultate liefern kann? Also zb so
Delphi-Quellcode:
function blabla(filenam:string):result1,result2:string;stdcall;
danke schonmal |
Re: DLL Mit mehreren Results
Keine Funktion kann mehrere Werte zurückgeben. Du könntest evtl. die Strings als Var-Parameter übergeben. Beachte aber die Hinweise von Delphi im Bezug auf Strings in DLLs.
|
Re: DLL Mit mehreren Results
Nein, warum sollte eine Funktion in einer DLL mehrere Rückgabewerte haben können, wenn das auch eine Funktion in einer normalen Anwendung nicht kann? Eine DLL ist eigentlich auch nichts anderes wie eine Exe-Datei mit kompilierten Code, aber eben nur nicht selbstständig ausführbar.
|
Re: DLL Mit mehreren Results
Als Variablen hmmm
Ok ich weiss wie ich in der DLL Einer Variable einen Wert gebe und dan einfach noch den EXPORT "aktivieren" Aber wie deklariere ich die Variable in der Anwendung? Weil wenn ich ja
Delphi-Quellcode:
mache dann weiss die EXE ja nicht das die Vars aus der DLL Kommensollen
VAR bla, bl2, bl3:string
Wie muss ich die also angeben? |
Re: DLL Mit mehreren Results
Delphi-Quellcode:
Edit: Aber keine Strings!!! Das macht nur Ärger. (Shortstring ist für den Anfang erstmal besser)
procedure getsomethingmore(hinein:integer; var heraus1,heraus2:integer)
|
Re: DLL Mit mehreren Results
ok danke
Ich werds mal testen :D Ich hätt da noch ne kurze kleine Frage Kann man bei der Angabe der DLL nicht alle zusammen nehmen? also so muss es ja aussehen
Delphi-Quellcode:
Kann man das nicht irgendwie so machen:
procedure rid3(Filename: string);stdcall;
external 'ax_main.dll'; function ID3(Filename:string):string;stdcall; external 'ax_main.dll';
Delphi-Quellcode:
Danke :D
procedure rid3(Filename: string);stdcall; , function ID3(Filename:string):string;stdcall;
external 'ax_main.dll'; |
Re: DLL Mit mehreren Results
wie bereits erwähnt kann eine funktion immer nur einwas zurück geben. Wenn einem das nicht genügt nimmt man Var parameter. Aber auch wenn eine Funktion nur einwas zurück geben kann, kann in diesem einen mehrere enthalten sein. Zum Beispiel kann eine Funktion einen Record zurück geben wo mehreres enthalten ist.
|
Re: DLL Mit mehreren Results
Man kann mit einem Rutsch mehrere Werte aus einer Funktion oder Progcedure etc. zurückliefern.
Einfach einen eigennen Typ zB. ein Record basteln und los geht es.
Delphi-Quellcode:
type
TMyRecResult = record a, b: Integer; c: Char; end; function foo(x, y, z: Integer): TMyRecResult; begin Result.a := x + y; Result.b := y + z; if a > b then Result.c := 'J' else Result.c := 'N'; end; procedure foo2(x, y, z: Integer; var Schnipp: TMyRecResult); begin Schnipp.a := x + y; Schnipp.b := y + z; if a > b then Schnipp.c := 'J' else Schnipp.c := 'N'; end; Zitat:
|
Re: DLL Mit mehreren Results
Ok danke
Das hat mir geholfen :D |
Re: DLL Mit mehreren Results
Und, @turbopascal, foo und foo2 sieht im compilierten Code exakt gleich aus :mrgreen:
@hedie Denke bitte an die strings! Ansonstern wunder dich nicht über eine AV die wahllos im Programm auftaucht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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