[delphi5] dll - wywołanie funkcji

0

heloł

piszę bo mam problem - naczytałem się o dll'ach i ich wykorzytaniu - jednak gdy próbuję wywołać funkcję - wyskakują mi błędy - co robię nie tak oto kod:

library dlle;

function jakasf(dat : integer) : string; StdCall;
begin

case dat of
0 : jakas := '0';
1 : jakas := '1';
2 : jakas := '2';
end;

exports
jakasf;

begin
end.

a wywołuję ją z jakiejś formy:

var
Form1: TForm1;

function jakas(dat : integer) : string; external 'dlle.DLL' ;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption := jakas(1);
end;

[glowa]

  • biblioteka na pewno znajduje się w tym samym kat. co app

Pytanie dod. czy aby skompilować dll'a muszę podać aplikację nadrzędną?

z góry dzięki za re

pozdrawiam [cya] Slaw

0

sorki tam wyżej poprawnie jest takie wywołanie

var
Form1: TForm1;

function jakasf(dat : integer) : string; external 'dlle.DLL' ;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption := jakasf(1);
end;

0

Dwie rzeczy

  1. przekazywanie stringow do i z dll-a jest skomplikowane. jesli mozesz uzyj krotkich stringow albo pChar. Jest tez metoda do stringow, ale zawila.

&gtvar
&gt Form1: TForm1;
&gt
&gtfunction jakas(dat : integer) : string; external 'dlle.DLL' ;

tu chyba tez powinno byc stdcall

&gt
&gtimplementation
&gt--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

dzięki bardzo - działa - musi być zamiast string - shortstring - i to wszystko :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1