Compartir a través de


Función SetDllDirectoryA (winbase.h)

Agrega un directorio a la ruta de acceso de búsqueda que se usa para buscar archivos DLL para la aplicación.

Sintaxis

BOOL SetDllDirectoryA(
  [in, optional] LPCSTR lpPathName
);

Parámetros

[in, optional] lpPathName

Directorio que se va a agregar a la ruta de acceso de búsqueda. Si este parámetro es una cadena vacía (""), la llamada quita el directorio actual del orden de búsqueda de DLL predeterminado. Si este parámetro es NULL, la función restaura el orden de búsqueda predeterminado.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

La función setDllDirectory afecta a todas las llamadas posteriores a la loadLibrary de y a las funciones LoadLibraryEx. También deshabilita eficazmente el modo de búsqueda de DLL seguro mientras el directorio especificado está en la ruta de búsqueda.

Nota

En el caso de los procesos Win32 que no no ejecutar un proceso empaquetado o protegido, llamar a esta función también afectará al orden de búsqueda dll de los procesos secundarios iniciados desde el proceso que ha llamado a la función.

Después de llamar a SetDllDirectory, la ruta de búsqueda de DLL estándar es:

  1. Directorio desde el que se cargó la aplicación.
  2. Directorio especificado por el parámetro lpPathName.
  3. Directorio del sistema. Use la función GetSystemDirectory para obtener la ruta de acceso de este directorio. El nombre de este directorio es System32.
  4. Directorio del sistema de 16 bits. No hay ninguna función que obtenga la ruta de acceso de este directorio, pero se busca. El nombre de este directorio es System.
  5. Directorio de Windows. Use la función GetWindowsDirectory para obtener la ruta de acceso de este directorio.
  6. Directorios que aparecen en la variable de entorno PATH.
Cada vez que se llama a la función SetDllDirectory, reemplaza el directorio especificado en la llamada anterior SetDllDirectory. Para especificar más de un directorio, use la función AddDllDirectory y llame a LoadLibraryEx con LOAD_LIBRARY_SEARCH_USER_DIRS.

Para revertir a la ruta de acceso de búsqueda estándar usada por LoadLibrary y LoadLibraryEx, llame a SetDllDirectory con NULL. Esto también restaura el modo de búsqueda de DLL seguro basado en el SafeDllSearchMode valor del Registro.

Para compilar una aplicación que use esta función, defina _WIN32_WINNT como 0x0502 o posterior. Para obtener más información, vea Using the Windows Headers.

Nota

El encabezado winbase.h define SetDllDirectory como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista, Windows XP con SP1 [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

AddDllDirectory

de orden de búsqueda de la biblioteca de Dynamic-Link

GetDllDirectory

getSystemDirectory

getWindowsDirectory

loadLibrary

LoadLibraryEx