AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlende DLL ignorieren

Ein Thema von Aljoscha · begonnen am 2. Jan 2005 · letzter Beitrag vom 2. Jan 2005
Antwort Antwort
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#1

Fehlende DLL ignorieren

  Alt 2. Jan 2005, 14:33
Hi an alle im Forum

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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fehlende DLL ignorieren

  Alt 2. Jan 2005, 14:35
du musst die DLL dynamich einbinden (LoadLibrary etc.)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#3

Re: Fehlende DLL ignorieren

  Alt 2. Jan 2005, 16:12
Kann ich über LoadLibrary aus der Ressource laden.
Bei mir kommt da ein ganzer batzen von Fehlermeldungen
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#4

Re: Fehlende DLL ignorieren

  Alt 2. Jan 2005, 16:23
lol ... ok...
Vergiss es bitte schnell wieder jetzt kapier ich das... aus Ressource laden...
naja thx
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#5

Re: Fehlende DLL ignorieren

  Alt 2. Jan 2005, 17:22
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.
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#6

Re: Fehlende DLL ignorieren

  Alt 2. Jan 2005, 18:47
Ein kurzer Blick ins PSDK:
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Fehlende DLL ignorieren

  Alt 2. Jan 2005, 22:24
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 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