Windows DLL Suchpfad erweitern

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Windows DLL Suchpfad erweitern

Beitrag von Matthias Gubisch »

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
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Windows DLL Suchpfad erweitern

Beitrag von Krishty »

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
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Windows DLL Suchpfad erweitern

Beitrag von Matthias Gubisch »

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
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Windows DLL Suchpfad erweitern

Beitrag von Matthias Gubisch »

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?
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Schrompf
Moderator
Beiträge: 4854
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Windows DLL Suchpfad erweitern

Beitrag von Schrompf »

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.
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Windows DLL Suchpfad erweitern

Beitrag von Matthias Gubisch »

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....
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Windows DLL Suchpfad erweitern

Beitrag von kimmi »

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
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Windows DLL Suchpfad erweitern

Beitrag von Matthias Gubisch »

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....
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Antworten