Condividi tramite


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 è:

  1. Directory da cui è stata caricata l'applicazione.
  2. Directory specificata dal parametro lpPathName .
  3. Directory di sistema. Usare la funzione GetSystemDirectory per ottenere il percorso di questa directory. Il nome di questa directory è System32.
  4. 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.
  5. La directory Windows. Usare la funzione GetWindowsDirectory per ottenere il percorso di questa directory.
  6. Directory elencate nella variabile di ambiente PATH.
Ogni volta che viene chiamata la funzione SetDllDirectory , sostituisce la directory specificata nella chiamata SetDllDirectory precedente. Per specificare più directory, usare la funzione AddDllDirectory e chiamare LoadLibraryEx con LOAD_LIBRARY_SEARCH_USER_DIRS.

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

Vedere anche

AddDllDirectory

Ordine di ricerca libreria di collegamento dinamico

GetDllDirectory

GetSystemDirectory

GetWindowsDirectory

LoadLibrary

LoadLibraryEx