MSDN sagt, dass die Funktion SetDllDirectory () verwendet werden kann, ein Verzeichnis in das einfügen DLL-Suchpfad Diese Funktion kann aus einer Batch-Datei oder cmd Skript zugegriffen werden, vielleicht über mit cscript ?
Das Ziel ist, unsere Entwicklungs Version einer DLL, bevor ein älteren usw. in% windir% bestehende vorge gefunden zu haben, ohne ein Programm nur für das schreiben.
Vielen Dank im Voraus für Ihre Zeit und Ihre Gedanken.
Sie können die DLL im selben Pfad wie die ausführbare Datei platzieren, die zuerst vor% WINDIR% gesucht wird. Es gibt keine Möglichkeit, SetDllDirectory direkt aus einer Batch-Datei aufzurufen.
Sie können jedoch Ihr DLL-Verzeichnis in die Variable% PATH% einfügen, und Windows wird dann die DLL dort finden.
%Vor%Das Ziel ist unsere Entwicklung Version einer DLL vor gefunden a Vorbestehendes älteres in% WINDIR% usw. ohne ein Programm schreiben zu müssen nur dafür.
Wenn sich die DLL nicht im selben Ordner wie die ausführbare Datei befindet, sucht Windows die Datei in den Ordnern, die im Systempfad angegeben sind. Alles, was Sie tun müssen, ist Ihren Ordner am Anfang des Pfades zu platzieren.
Sie können dies mit dem folgenden Batch-Befehl tun:
%Vor%Wenn Ihr Pfad Leerzeichen enthält, müssen Sie den folgenden Stapelbefehl verwenden:
%Vor%Beachten Sie jedoch, dass diese Pfadänderung nur für den PATH der aktuellen Konsolensitzung vorgenommen wird. Wenn Sie die Konsole schließen und erneut öffnen, gehen diese Pfadänderungen verloren.
Um Konflikte über die DLL-Suchreihenfolge zu klären (in den Kommentaren zu @ jussijs Antwort), hier ist die Liste, die aus dem Microsoft-Dokument stammt:
Wenn SafeDllSearchMode
aktiviert ist, lautet die Suchreihenfolge wie folgt:
GetSystemDirectory
, um den Pfad dieses Verzeichnisses abzurufen. GetWindowsDirectory
, um die Funktion zu erhalten
Pfad dieses Verzeichnisses. Wenn SafeDllSearchMode
deaktiviert ist, lautet die Suchreihenfolge wie folgt:
GetSystemDirectory
, um den Pfad dieses Verzeichnisses abzurufen. GetWindowsDirectory
, um den Pfad dieses Verzeichnisses abzurufen. Siehe Ссылка
Tags und Links dll cmd wsh batch-file