Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehlende DLL ignorieren (https://www.delphipraxis.net/37208-fehlende-dll-ignorieren.html)

Aljoscha 2. Jan 2005 14:33


Fehlende DLL ignorieren
 
Hi an alle im Forum :D

Ich habe eine Anwendung erstellt dir auf eine DLL zurückgreift.
Nun habe ich die DLL als Ressource in die Exe integriert so das sie beim starten des Programms automatisch in das selbe Verzeichnis extrahiert wird.

Nun zu meinem Problem:

Im Quellcode wird logischerweise auf die DLL zugegriffen.
Da beim 1. Programmstart aber noch keine DLL vorhanden ist gibt das Programm nur eine Fehlermeldung aus das die DLL fehlt und und beendet sich.

Wenn ich aber die 2 Zeilen in denen auf die DLL zugegriffen wird auskommentiere und kompile funktionert alles wunderbar.
Die exe wird gestartet und die DLL liegt daraufhin im selben Verzeichnis.

Wie kann ich es nun anstellen, dass der Fehler mit der DLL ignoriert wird?

Ich habe es nämlich so gelöst das geprüft wird ob die DLL vorhanden ist, und wenn dies der Fall ist startet das Programm ganz normal. Sollte die DLL Fehlen wird sie extrahiert und das Programm startet neu und kann somit beim 2. start Problemlos auf die DLL zugreifen.

Aber nur in der Theorie... weil es eben nicht möglich ist diese Funktion anzuwenden.

Bei einem Start ohne die DLL gibt das Programm eben nur diese Fehlermeldung aus.

Könnte ich das Programm also dazu bringen das Fehlen der DLL zu ignorieren wäre alles in Ordnung.

ich hoffe ihr habt verstanden wie ich das meine...

MfG Aljoscha

SirThornberry 2. Jan 2005 14:35

Re: Fehlende DLL ignorieren
 
du musst die DLL dynamich einbinden (LoadLibrary etc.)

Aljoscha 2. Jan 2005 16:12

Re: Fehlende DLL ignorieren
 
Kann ich über LoadLibrary aus der Ressource laden.
Bei mir kommt da ein ganzer batzen von Fehlermeldungen :(

Aljoscha 2. Jan 2005 16:23

Re: Fehlende DLL ignorieren
 
lol ... ok...
Vergiss es bitte schnell wieder jetzt kapier ich das... aus Ressource laden...
naja thx :D

Aljoscha 2. Jan 2005 17:22

Re: Fehlende DLL ignorieren
 
Okay das mit dem Dynamischen laden habe ich jetzt so weit hingekriegt.
Das Programm wird ohne Fehler compiled.
ABER jetzt tut sich nichts mehr. Als wäre die DLL nicht wirklich geladen worden.
Deshalb mal noch eine dumme Frage:

Delphi-Quellcode:
...
  lib := LoadLibrary('myHook.dll');
...
Von wo wird die myHook.dll denn da geladen?

Aus dem gleichen Verzeichnis wie die exe aus einer Ressource...

Wäre nett wenn mir das einer sagen könnte.

teebee 2. Jan 2005 18:47

Re: Fehlende DLL ignorieren
 
Ein kurzer Blick ins PSDK:
Zitat:

Zitat von MSDN
...
Otherwise, the function searches for the file in the following sequence:

1. The directory from which the application loaded.

2. The current directory.

3a. Windows 95 and Windows 98: The Windows system directory. Use the GetSystemDirectory function to get the path of this directory.
3b. Windows NT: The 32-bit Windows system directory. Use the GetSystemDirectory function to get the path of this directory. The name of this directory is SYSTEM32.

4. Windows NT: The 16-bit Windows system directory. There is no function that obtains the path of this directory, but it is searched. The name of this directory is SYSTEM.

5. The Windows directory. Use theGetWindowsDirectory function to get the path of this directory.

6. The directories that are listed in the PATH environment variable.

Gruß, teebee

Luckie 2. Jan 2005 22:24

Re: Fehlende DLL ignorieren
 
Ixh sage es jedes mal wieder: Benutzt absolute Pfade, sonst fallt ihr noch mal richtig auf die Nase. Desweiteren würde ich sie nicht ins Anwendungsverzeichnis entpacken, sondern ins temporäre des Benutzters, sonst kann man deine Anwendung nicht von CD starten bzw. wenn es von einem Admin installiert wird können es nicht Benutzer mit eingeschränkten Rechten benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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