Ist es möglich ein Verzeichnis hinzufügen, um DLL-Suchpfad aus einer batch Datei oder cmd-Skript?
MSDN sagt, dass die Funktion SetDllDirectory() kann verwendet werden, um legen Sie ein Verzeichnis an, in dem DLL-Suchpfad. Kann diese Funktion aufgerufen werden, die von einer batch-Datei oder cmd-Skript, vielleicht mit über cscript?
Ist das Ziel, unsere Entwicklungs-version der dll gefunden, bevor Sie eine bereits vorhandene ältere in %WINDIR% etc.. ohne zu schreiben, ein Programm nur für die.
Dank im Voraus für Eure Zeit und Gedanken.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die DLL in den gleichen Pfad wie die EXE-Datei, die gesucht wird, zuerst bevor Sie %WINDIR%. Es gibt keine Möglichkeit zu nennen, SetDllDirectory aus einer batch-Datei direkt.
Aber, können Sie DLL-Verzeichnis in der %PATH% - variable, und Windows wird dann suchen Sie die DLL da ist.
Wenn die DLL nicht im gleichen Ordner wie die ausführbare Windows-Suche die Datei in dem Ordner im Systempfad angegebenen. So alle Sie tun müssen, ist legen Sie Ihre Ordner am Anfang des Pfades.
Können Sie dies mit der folgenden batch-Befehl:
Enthält der Pfad Leerzeichen, müssen Sie den folgenden batch-Befehl:
Aber daran denken, diesen Pfad zu ändern, ist nur gemacht, um den PFAD der aktuellen Konsole-Sitzung. Wenn Sie schließen und öffnen die Konsole diesen Weg gehen die änderungen verloren.
Klar, bis Streit über die dll-Suchreihenfolge (in den Kommentaren an @jussij Antwort), hier ist die Liste, gezeichnet von Microsoft-doc:
Wenn
SafeDllSearchMode
aktiviert ist, wird die Suchreihenfolge lautet wie folgt:GetSystemDirectory
- Funktion, um den Pfad dieses Verzeichnisses.GetWindowsDirectory
- Funktion, um diePfad dieses Verzeichnisses.
Wenn
SafeDllSearchMode
deaktiviert ist, wird die Suchreihenfolge lautet wie folgt:GetSystemDirectory
- Funktion, um den Pfad dieses Verzeichnisses.GetWindowsDirectory
- Funktion, um den Pfad dieses Verzeichnisses.Sehen http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs. 85).aspx#standard_search_order_for_desktop_applications