Avatar billede winkill Nybegynder
17. juni 2000 - 12:28 Der er 3 kommentarer og
1 løsning

Hvordan laver man en DLL i Delphi 5 ??

Er der en venlig sjæl der vil lave et lille eksempel på sourcen i en dll med to funktioner. En funktion der er tilgængelig for programmer der benytter DLL'en og en funktion som kun kan bruges internt i DLL'en.

Funktionerne kunne evt. returnerer noget i stil med "Hello World" eller what ever...
Avatar billede cms Nybegynder
17. juni 2000 - 13:05 #1
Først skal du lave et "library" - det gøres fra "File|New...", hvor du vælger "library". Så indtaster du følgende kode, og gemmer det som fx DllProject1.dpr

---- kode ----
library DllProject1;

uses
  ShareMem,
  SysUtils,
  Dialogs,
  Classes;

{$R *.RES}

procedure SM(Msg: String); //denne proc er intern !!
begin
  Showmessage(Msg);
end;

function Func1: String; //da jeg kalder disse funktioner med String, SKAL man bruge ShareMem-unitet i alle filer, der skal bruge denne funktion.
//hvis man vil undgå det - eller hvis man vil lave en dll, der også kan bruges af fx Visual Basic-programmer, skal man lave det om til pchar !!
begin
  SM('Hejsa1');
  Result:='Hello World 1';
end;

function Func2: String; //samme her!
begin
  SM('Hejsa2');
  Result:='Hello World 2';
end;

exports
  Func1,
  Func2;

begin

end.
---- kode ----

så laver du et program (exe), der kan bruge dll'en - fx UseDll.dpr. I dette eksempel har jeg fjernet alle forms, da de ikke behøves!

---- kode ----
program UseDll;

uses
  ShareMem,Windows,SysUtils,Dialogs;

{$R *.RES}

function Func1: String; external 'DllProject1.dll' name 'Func1';
function Func2: String; external 'DllProject1.dll' name 'Func2';

begin
  ShowMessage('Kalder Func1');
  ShowMessage(Func1); //viser resultatet i en msgbox
  ShowMessage('Kalder Func2');
  ShowMessage(Func1); //viser resultatet i en msgbox
end.
---- kode ----

Og så virker det!

Du kan selvfølgelig også lave parametre til funktionerne - bare husk at ret både i DllProject1 og i UseDll !!
Avatar billede cms Nybegynder
17. juni 2000 - 13:05 #2
Ups, det var et svar
Avatar billede cms Nybegynder
17. juni 2000 - 13:06 #3
Husk ShareMem - !!!!
Avatar billede winkill Nybegynder
17. juni 2000 - 13:35 #4
Tak, det virker som det skal så nu kan jeg komme videre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester