Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfen ob dll geladen (https://www.delphipraxis.net/35459-pruefen-ob-dll-geladen.html)

freak4fun 7. Dez 2004 15:22


Prüfen ob dll geladen
 
Hallo,
ich hab eine .dll in mein Projekt eingebunden. Nun will ich aber prüfen, ob diese auch wirklich verfügbar ist. Wie kann ich das anstellen? :gruebel: Ich hatte versucht einen try - except - Block darum zu bauen, aber das funktioniert nicht, bzw ich mache was falsch.

So siehts aus:

Delphi-Quellcode:
implementation
function addiere (zahl1, zahl2: integer): integer; stdcall;
external
  'dllmath.dll';
function subtraiere (zahl1, zahl2: integer): integer; stdcall;
external
  'dllmath.dll';
mfg
freak

mirage228 7. Dez 2004 15:24

Re: Prüfen ob dll geladen
 
Du müsstet die Hier im Forum suchenDLL dynamisch laden, und schauen, ob das möglich ist (ist das Handle auf DLL gültig? Ist die Methode in der DLL vorhanden? etc.)

mfG
mirage228

Dax 7. Dez 2004 15:25

Re: Prüfen ob dll geladen
 
Wenn du das so machst, kannst du während der Laufzeit nur mit FileExists arbeiten und entsprechend die Funktionen nicht nutzen. Du könntest aber auch MSDN-Library durchsuchenLoadLibrary benutzen. Wenn die angegebene Datei nicht existiert, gibt die Funktion Null als Ergebnis.

freak4fun 7. Dez 2004 15:25

Re: Prüfen ob dll geladen
 
huhu,
an dynamisch hatte ich nicht gedacht. Danke für die schnelle Antwort! :wink:

mfg
freak

Muetze1 7. Dez 2004 15:56

Re: Prüfen ob dll geladen
 
Moin!

Und wenn du es statisch einbindest, dann ist die DLL immer geladen, wenn dein Code zur Ausführung kommt, weil Windows bei fehlender statischer DLL einen Fehler ausgibt und das Programm deshalb nicht laden, geschweige denn starten kann.

MfG
Muetze1

freak4fun 7. Dez 2004 15:57

Re: Prüfen ob dll geladen
 
kann man den fehler nicht irgendwie unterdrücken?

mfg
freak

Muetze1 7. Dez 2004 15:59

Re: Prüfen ob dll geladen
 
Moin!

Nein, der kommt direkt vom Windows Loader der die Referenzen der Lookup Table bzw. der Dependencies auflösen will. Die Meldung bringt Windows immer, weil sonst der User auf den Start des Programmes wartet... *g*
Dein Programm selber wird nie gestartet und kann daher auch nie eine Meldung ausgeben.

MfG
Muetze1

freak4fun 7. Dez 2004 16:13

Re: Prüfen ob dll geladen
 
Achso,
danke...

mfg
freak


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.

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