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 ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

La funzione SetDllDirectory influisce su tutte le chiamate successive al LoadLibrary e funzioni loadLibraryEx. Disabilita anche 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 sono non l'esecuzione di un processo in pacchetto o protetto, 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 è:

  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. Directory di 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 precedente chiamata SetDllDirectory. 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 basata sul valore 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

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 Finestre
intestazione winbase.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

AddDllDirectory

ordine di ricerca della libreria Dynamic-Link

GetDllDirectory

GetSystemDirectory

GetWindowsDirectory

loadLibrary

LoadLibraryEx