Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit dynamisch geladener DLL (https://www.delphipraxis.net/84919-problem-mit-dynamisch-geladener-dll.html)

cruiser 25. Jan 2007 15:19

Re: Problem mit dynamisch geladener DLL
 
Jap. Ich werd (mit deiner Erlaubnis) diese Methode überall da wo es nötig ist einbauen. Oder ist es besser alle Proceduren in einer Loader-Unit zu kapseln und die uses zu ersetzen?

Luckie 25. Jan 2007 15:27

Re: Problem mit dynamisch geladener DLL
 
Ich würde die Messageboxen aus der Unit rausnehmen und besser so was machen:

Delphi-Quellcode:
function Load: Boolean;
begin
  hLib := LoadLibrary(...)
  result := hLib <> 0;
end;
und beim Aufrufen dann:
Delphi-Quellcode:
if not Load then
  MessageBox(Handle, PChar(SysErrorMessage(GetLastError)), 'Fehler - DLL laden', MB_ICONSTOP);
else
  ...;
Dann kannst du je nach dem entscheiden, ob du eine Fehlermeldung an der Stelle willst oder nicht. Oder du machst es mit Exceptions, wenn dir das lieber ist:
Delphi-Quellcode:
function Load: Boolean;
begin
  hLib := LoadLibrary(...)
  if hLib = 0 then
    raise Exception.Create(SysErrorMessage(GetLastError));
end;
Delphi-Quellcode:
  try
    Load;
  except
    on E: Exception do
      MessageBox(Handle, PChar(E.Message), 'Fehler - DLL laden', MB_ICONSTOP);
  end;

cruiser 25. Jan 2007 15:32

Re: Problem mit dynamisch geladener DLL
 
mhm... gute Idee. Vielleicht eher unwichtige Frage... aber... DLL nur in einer Unit laden und Uses anpassen oder in jeder unit die Externals austauschen? Was wäre da günstiger?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.
Seite 2 von 2     12   

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