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 realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
La función SetDllDirectory afecta a todas las llamadas posteriores a las funciones LoadLibrary y LoadLibraryEx . También deshabilita eficazmente el modo de búsqueda de DLL seguro mientras el directorio especificado está en la ruta de acceso de búsqueda.
Nota
En el caso de los procesos Win32 que no ejecutan 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:
- Directorio desde el que se cargó la aplicación.
- Directorio especificado por el parámetro lpPathName .
- Directorio del sistema. Use la función GetSystemDirectory para obtener la ruta de acceso de este directorio. El nombre de este directorio es System32.
- 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.
- El directorio de Windows. Use la función GetWindowsDirectory para obtener la ruta de acceso de este directorio.
- Los directorios que aparecen en la variable de entorno PATH.
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 valor del registro SafeDllSearchMode .
Para compilar una aplicación que usa esta función, defina _WIN32_WINNT como 0x0502 o posterior. Para obtener más información, vea Usar los encabezados de Windows.
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 Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista, Windows XP con SP1 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |