17. juni 2000 - 12:28Der 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...
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 !!
Tak, det virker som det skal så nu kan jeg komme videre.
Synes godt om
Ny brugerNybegynder
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.