SetDllDirectoryA-Funktion (winbase.h)
Fügt dem Suchpfad ein Verzeichnis hinzu, das zum Suchen von DLLs für die Anwendung verwendet wird.
Syntax
BOOL SetDllDirectoryA(
[in, optional] LPCSTR lpPathName
);
Parameter
[in, optional] lpPathName
Das Verzeichnis, das dem Suchpfad hinzugefügt werden soll. Wenn dieser Parameter eine leere Zeichenfolge ("") ist, entfernt der Aufruf das aktuelle Verzeichnis aus der standardmäßigen DLL-Suchreihenfolge. Wenn dieser Parameter NULL ist, stellt die Funktion die Standardsuchreihenfolge wieder her.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Die SetDllDirectory--Funktion wirkt sich auf alle nachfolgenden Aufrufe der LoadLibrary und LoadLibraryEx--Funktionen aus. Außerdem wird der sichere DLL-Suchmodus deaktiviert, während sich das angegebene Verzeichnis im Suchpfad befindet.
Anmerkung
Bei Win32-Prozessen, die nicht Ausführen eines verpackten oder geschützten Prozesses
Nach dem Aufrufen SetDllDirectorylautet der standardmäßige DLL-Suchpfad:
- Das Verzeichnis, aus dem die Anwendung geladen wurde.
- Das durch den parameter lpPathName angegebene Verzeichnis.
- Das Systemverzeichnis. Verwenden Sie die GetSystemDirectory--Funktion, um den Pfad dieses Verzeichnisses abzurufen. Der Name dieses Verzeichnisses ist System32.
- Das 16-Bit-Systemverzeichnis. Es gibt keine Funktion, die den Pfad dieses Verzeichnisses abruft, aber es wird durchsucht. Der Name dieses Verzeichnisses lautet "System".
- Das Windows-Verzeichnis. Verwenden Sie die GetWindowsDirectory--Funktion, um den Pfad dieses Verzeichnisses abzurufen.
- Die Verzeichnisse, die in der PATH-Umgebungsvariable aufgeführt sind.
Rufen Sie SetDllDirectory mit NULL auf, um den von LoadLibraryEx und LoadLibraryEx-verwendeten Standardsuchpfad zurückzurufen. Dadurch wird auch der sichere DLL-Suchmodus basierend auf dem SafeDllSearchMode Registrierungswert wiederhergestellt.
Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0502 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.
Anmerkung
Der winbase.h-Header definiert SetDllDirectory als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista, Windows XP mit SP1 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winbase.h (enthalten Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |