Windows DLL Suchpfad erweitern
-
- Establishment
- Beiträge: 501
- Registriert: 01.03.2009, 19:09
Windows DLL Suchpfad erweitern
Hallo zusammen
ich habe folgendes Problem
Meine Applikation benutzt QT als als Framework.
Compilieren und Linken funktioniert einwandfrei. starten aus VisualStuio sowohl im Debug als auch im Release Modus ebenfalls.
Wenn ich meine Applikation jezt allerdings ausserhalb von VisualStudio starten will, dann funktioniert der Debugbild einwandfrei und beim Versuch den Releasebuild bekomme ich die Fehlermeldung dass die entsprechenden QT-DLLs nicht gefunden wurden...
Wenn ich die DLLs in das Anwendungsverzeichnis kopiere funktioniert alles einwandfrei, aber das kann ja eigentlich nicht Sinn und zweck der Sache sein.
Hat jemand eine Idee wie ich Windwos sagen kann dass er auch in einem anderen Verzeichniss nach den DLLs suchen soll?
Ein eintrag in die PATH Variable scheint nicht zu helfen :(
Gruesse
Matthias
ich habe folgendes Problem
Meine Applikation benutzt QT als als Framework.
Compilieren und Linken funktioniert einwandfrei. starten aus VisualStuio sowohl im Debug als auch im Release Modus ebenfalls.
Wenn ich meine Applikation jezt allerdings ausserhalb von VisualStudio starten will, dann funktioniert der Debugbild einwandfrei und beim Versuch den Releasebuild bekomme ich die Fehlermeldung dass die entsprechenden QT-DLLs nicht gefunden wurden...
Wenn ich die DLLs in das Anwendungsverzeichnis kopiere funktioniert alles einwandfrei, aber das kann ja eigentlich nicht Sinn und zweck der Sache sein.
Hat jemand eine Idee wie ich Windwos sagen kann dass er auch in einem anderen Verzeichniss nach den DLLs suchen soll?
Ein eintrag in die PATH Variable scheint nicht zu helfen :(
Gruesse
Matthias
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Windows DLL Suchpfad erweitern
Du kannst mit LoadLibraryEx() durch Angabe eines absoluten Pfads und des Parameters LOAD_WITH_ALTERED_SEARCH_PATH eine bestimmte DLL laden …
… für Anwendungen, die Probleme mit dem Laden der DLLs haben, wird überdies diese Funktion empfohlen.
Ich sollte noch dazu sagen, dass Windows bei der Suche nach einer DLL einem ganz bestimmten, logischen Muster folgt, das sogar extra für Vista umgestellt wurde … leider habe ich zu lange nicht mehr mit sowas zu tun gehabt um noch zu wissen, wie genau das ablief, und bin zu faul, jetzt danach zu suchen :D Durch das Lesen der Remarks-Abschnitte der verschiedenen Funktionen sollte man auf den Weg, wie Microsoft das ursprünglich gewollt hat, kommen können.
Gruß, Ky
… für Anwendungen, die Probleme mit dem Laden der DLLs haben, wird überdies diese Funktion empfohlen.
Ich sollte noch dazu sagen, dass Windows bei der Suche nach einer DLL einem ganz bestimmten, logischen Muster folgt, das sogar extra für Vista umgestellt wurde … leider habe ich zu lange nicht mehr mit sowas zu tun gehabt um noch zu wissen, wie genau das ablief, und bin zu faul, jetzt danach zu suchen :D Durch das Lesen der Remarks-Abschnitte der verschiedenen Funktionen sollte man auf den Weg, wie Microsoft das ursprünglich gewollt hat, kommen können.
Gruß, Ky
-
- Establishment
- Beiträge: 501
- Registriert: 01.03.2009, 19:09
Re: Windows DLL Suchpfad erweitern
LoadLibrayEx hilft mir gar nix
Ich habe ja eigentlich die zugehoerigen statischen Libs eingebunden die das uebernehmen soll
funktioniert ja alles solang ich nicht versuche den releasebuild von ausserhalb des VisualStudio zu starten
die andere funktion werd ich mir mal anschauen
Das ganze soll auf WinXP laufen
Ich habe ja eigentlich die zugehoerigen statischen Libs eingebunden die das uebernehmen soll
funktioniert ja alles solang ich nicht versuche den releasebuild von ausserhalb des VisualStudio zu starten
die andere funktion werd ich mir mal anschauen
Das ganze soll auf WinXP laufen
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
-
- Establishment
- Beiträge: 501
- Registriert: 01.03.2009, 19:09
Re: Windows DLL Suchpfad erweitern
Die Funktion SetDllDirectory fuktoniert aber auch nur wenn ich die DLL mit LoadLibrary selber lade
Wenn ich sie aber ueber die vorhanden statische Lib (die bei QT ja mitgeliefert ist) beim Programmstart laden will dann hilft mir die Funktion leider auch nix :(
Noch jemand eine andere Idee?
Wenn ich sie aber ueber die vorhanden statische Lib (die bei QT ja mitgeliefert ist) beim Programmstart laden will dann hilft mir die Funktion leider auch nix :(
Noch jemand eine andere Idee?
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
- Schrompf
- Moderator
- Beiträge: 5147
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Windows DLL Suchpfad erweitern
Wir haben die DLLs schlicht neben die Exe gelegt. Von dort wird sie (nahezu) immer bevorzugt geladen, womit man auch Versionskonflikten mit anderen Installationen aus dem Weg geht.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 501
- Registriert: 01.03.2009, 19:09
Re: Windows DLL Suchpfad erweitern
So habe ich das jezt auch gemacht
einfach per Postbuildevent die notwendigen DLLs kopiert
Aber ich wollte sowas eigentlich vermeiden, aber scheint tatsaechlich nicht anders zu gehen wenn man die DLLs nicht selber laedt :(
Naja Windows halt, muss mich wohl damit anfreunden....
einfach per Postbuildevent die notwendigen DLLs kopiert
Aber ich wollte sowas eigentlich vermeiden, aber scheint tatsaechlich nicht anders zu gehen wenn man die DLLs nicht selber laedt :(
Naja Windows halt, muss mich wohl damit anfreunden....
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
- kimmi
- Moderator
- Beiträge: 1412
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: Windows DLL Suchpfad erweitern
Na ja, auch unter Unix legt man die .so entweder direkt neben die Exes oder aber so ab, dass sie im entsprechenden Suchpfad liegen :). Das ist unter Windows nicht viel anders.
Gruss Kimmi
Gruss Kimmi
-
- Establishment
- Beiträge: 501
- Registriert: 01.03.2009, 19:09
Re: Windows DLL Suchpfad erweitern
Mit dem Unterschied dass unter Unix Problemlos funktioniert wenn man den libpath erweitert...
und unter windows anscheinend nicht und die direkt im systemverzeichnis oder bei der exe stehen muessen....
und unter windows anscheinend nicht und die direkt im systemverzeichnis oder bei der exe stehen muessen....
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben