Hej, nu smider jeg lige to spørgsmål den samme aften helt ufatteligt så meget jeg får skrevet.
Hmm titlen skulle have været:
Return værdi fra en funktion, i Delphi fra en dll.
Men kan ikke få lov til at redigere den længere. så ... men videre med spørgsmålet..
Dette spørgsmål går ud på at jeg har et program med en helveds masse funktioner, en god 400 liniers kode bare med godt kompakte funktioner. disse vil jeg gerne have lagt i en dll-fil så jeg kan bruge filen i flere forskellige programmer.
Har siddet og leget en del med det, og læst de artikler jeg nu kan finde. Jeg fandt ud af at lave en dll-fil med alle funktionerne, ikke det sværeste, og jeg fandt ud af at kalde funktionen fra mit program.
problemet er at jeg kan kalde funktionen fra dll-filen (og som alle funktioner vil jeg gerne returne en værdi), og det fik jeg den endelig efter lang tid til, men så efter det funktionen blev udført kom fejlmeddelse: "invallid pointer operation" (error message).. og så sad jeg fast.
Håber der er nogen der kan hjælpe, lader til at være en generel og brugbar ting så der må da være en løsning på dette problem.
har vedlagt mine koder så hvis det kun er en mindre ting, at du lige kan påpenge hvad det er
DLL
library Project2;
uses SysUtils, Dialogs, Classes;
{$R *.res}
function Test(data:string):string;
begin
showmessage('test' + data);
Result := 'blablaabekat';
end;
exports
Test;
begin
end.
Appunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
function Test(data:string): string; External 'Project2.dll';
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(Test('Lala'));
end;
end.
Dll filen ligger i den samme mappe, og den udfører sin showmessage, retunere og programmet udfører sin showmessage og derefter fejlmeddelse bumbang..
håber du vil hjælpe.
Mvh. Henrik K. Christensen -
Www.Knakke.dk
Indlæg senest redigeret d. 04.09.2008 19:55 af Bruger #10350