Funzione SetDllDirectoryA (winbase.h)
Aggiunge una directory al percorso di ricerca usato per individuare le DLL per l'applicazione.
Sintassi
BOOL SetDllDirectoryA(
[in, optional] LPCSTR 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 anche 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 pacchetto o protetto, la chiamata a questa funzione influisce anche sull'ordine di ricerca DLL dei processi figlio avviato 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 versioni successive. 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
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 |