Programowanie w języku Delphi » FAQ

Jak dynamicznie załadować funkcję z biblioteki DLL

  • 2006-02-01 12:44
  • 6 komentarzy
  • 1486 odsłon
  • Oceń ten tekst jako pierwszy
W celu dynamicznego załadowania funkcji z biblioteki DLL należy skorzystać z poniższego kodu:

type
  TfncCnx = function (s : string) : THandle;
 
var
  cnx : TfncCnx;
begin
  { load the DLL and get the function's address }
  h := LoadLibrary('myDll');
  if h = 0 then
  begin
    ShowMessage ('DLL not available');
  end
  else
  begin
    @cnx := GetProcAddress(h, 'myProc');
    if @cnx = nil then 
    begin
      { function not found.. misspelled? }
      ShowMessage ('blub');
    end
        else
    begin
      { call the function as usually }
      x := cnx('alpha');
    end;
    { unload the DLL }
    FreeLibrary(h);
  end;
end;




Źródło:   http://www.delphifaq.com/fq/q2035.shtml

Zobacz też:

6 komentarzy

xbary 2005-01-20 17:46

Ten tekst to jest jak odkrycie pętli repeat - until  :)  

Wolverine 2005-01-20 14:45

Przeciez funkcja to procedura z ostatnim parametrem - referencja do wyniku. Tylko po prostu to sie inaczej zapisuje, po wiecej info odsylam do helpa.

|PtaH| 2005-01-20 01:57

Owszem ale tam jest pokazana procedura a ja nie zamierzam z funkcji tworzyc procedur i wartosci przekazuwac przez referencje.  Ten sposób mi się spodobał! :)

|PtaH| 2005-01-20 00:23

A nuż ktuś nie bedzie musiał szukać, ja wole 4p od innych! I chciałbym aby tu najlepiej było wszystko!

Mabakay 2005-01-19 23:56

Skoro znalazłeś to w tak znanym i dużym FAQ'u to po co zamieściłeś to tutaj?