Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi DLL einbinden (https://www.delphipraxis.net/22816-dll-einbinden.html)

CReber 24. Mai 2004 15:42


DLL einbinden
 
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  LibHandle: THandle;
  bums:integer;
  Addieren: function(eins,zwei:integer):integer; stdcall;
  begin
    LibHandle := LoadLibrary('c:\DLL.dll');
    if LibHandle = 0 then
      raise Exception.Create('Unable to Load DLL...')
    else
    begin
      try @Addieren := GetProcAddress(LibHandle, 'Addieren');
        if @Addieren <> nil then
          bums:=Addieren(2,3);
      except
        on E: Exception do
          ShowMessage('Exception error: ' + E.Message);
      end;
    end;
    FreeLibrary(LibHandle);
end;
Ist daran was falsch? Bei mir kommt immer Zugriffsverletzung ! Ist ne DLL von einem VB projekt

sakura 24. Mai 2004 15:48

Re: DLL einbinden
 
Code:
[color=#ff0009]type
  TAddieren = function(eins,zwei:integer):integer; stdcall;[/color]
procedure TForm1.Button2Click(Sender: TObject);
var
  LibHandle: THandle;
  bums:integer;
[color=#ff0000] Addieren: TAddieren;[/color]
begin
    LibHandle := LoadLibrary('c:\DLL.dll');
    if LibHandle = 0 then
      raise Exception.Create('Unable to Load DLL...')
    else
    begin
[color=#ec0000]     try Addieren := GetProcAddress(LibHandle, 'Addieren');
        if Assigned(Addieren) then[/color]
          bums:=Addieren(2,3);
      except
        on E: Exception do
          ShowMessage('Exception error: ' + E.Message);
      end;
    end;
    FreeLibrary(LibHandle);
end;
Du musst nicht mit Pointern arbeiten ;)

...:cat:...

CReber 24. Mai 2004 15:59

Re: DLL einbinden
 
Danke ;) Aber da ist ein end; zuviel :))

bums:=Addieren(2,3);

Da kommt bei mir aber ein total utopischer Wert raus ?! Warum? :))


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz