Funzione SetDllDirectoryW (winbase.h)
Aggiunge una directory al percorso di ricerca usato per individuare le DLL per l'applicazione.
Sintassi
BOOL SetDllDirectoryW(
[in, optional] LPCWSTR lpPathName
);
Parametri
[in, optional] lpPathName
Directory da aggiungere al percorso di ricerca. Se questo parametro è una stringa vuota (""), la chiamata rimuove la directory corrente dall'ordine di ricerca DLL predefinito. Se questo parametro è NULL, la funzione ripristina l'ordine di ricerca predefinito.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
La funzione SetDllDirectory influisce su tutte le chiamate successive alle funzioni LoadLibrary e LoadLibraryEx . Disabilita inoltre in modo efficace la modalità di ricerca DLL sicura mentre la directory specificata si trova nel percorso di ricerca.
Nota
Per i processi Win32 che non eseguono un processo protetto o in pacchetto, la chiamata a questa funzione influirà anche sull'ordine di ricerca DLL dei processi figlio avviati dal processo che ha chiamato la funzione.
Dopo aver chiamato SetDllDirectory, il percorso di ricerca DLL standard è:
- Directory da cui è stata caricata l'applicazione.
- Directory specificata dal parametro lpPathName .
- Directory di sistema. Usare la funzione GetSystemDirectory per ottenere il percorso di questa directory. Il nome di questa directory è System32.
- Directory di sistema a 16 bit. Non esiste alcuna funzione che ottiene il percorso di questa directory, ma viene eseguita la ricerca. Il nome di questa directory è System.
- La directory Windows. Usare la funzione GetWindowsDirectory per ottenere il percorso di questa directory.
- Directory elencate nella variabile di ambiente PATH.
Per ripristinare il percorso di ricerca standard usato da LoadLibrary e LoadLibraryEx, chiamare SetDllDirectory con NULL. In questo modo viene ripristinata anche la modalità di ricerca DLL sicura in base al valore del Registro di sistema SafeDllSearchMode .
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0502 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.
Nota
L'intestazione winbase.h definisce SetDllDirectory come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista, Windows XP con SP1 [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |