LoadLibrary y AfxLoadLibrary

Actualización: noviembre 2007

Los procesos llaman a LoadLibrary (o a AfxLoadLibrary) para vincularse explícitamente a un archivo DLL. Si se vinculan correctamente, la función asigna el archivo DLL especificado al espacio de direcciones del proceso de llamada y devuelve un identificador al archivo DLL que se puede utilizar con otras funciones utilizadas en la vinculación explícita, como GetProcAddress y FreeLibrary.

LoadLibrary intenta encontrar el archivo DLL mediante la misma secuencia de búsqueda que se utiliza para la vinculación implícita. Si el sistema no encuentra el archivo DLL o la función de punto de entrada devuelve el valor FALSE, LoadLibrary devolverá el valor NULL. Si la llamada a LoadLibrary especifica un módulo de DLL que se asignó al espacio de direcciones del proceso de llamada, la función sólo devolverá un identificador del archivo DLL e incrementará la cuenta de referencia del módulo.

Si el archivo DLL tiene una función de punto de entrada, el sistema operativo llamará a la función en el contexto del subproceso que llamó a LoadLibrary. No se llamará a la función de punto de entrada si el archivo DLL ya está asociado al proceso a causa de una llamada anterior a LoadLibrary sin una llamada correspondiente a la función FreeLibrary.

Las aplicaciones MFC que carguen archivos DLL de extensión deberían utilizar AfxLoadLibrary en lugar de LoadLibrary. AfxLoadLibrary controla la sincronización de subprocesos antes de llamar a LoadLibrary. La interfaz (prototipo de función) para AfxLoadLibrary es la misma que para LoadLibrary.

Si por alguna razón Windows no puede cargar el archivo DLL, el proceso podría intentar recuperarse del error. Por ejemplo, podría notificar el error al usuario y pedirle que especifique otra ruta de acceso al archivo DLL.

Nota de seguridad:

Si el código se va a ejecutar con Windows NT 4, Windows 2000 o Windows XP (anterior a SP1), asegúrese de especificar el nombre completo de la ruta de acceso de las DLL. En estos sistemas operativos, se busca primero en el directorio actual cuando se cargan archivos. Si no proporciona la ruta de acceso completa al archivo, es posible que se cargue un archivo equivocado.

¿Qué desea hacer?

¿Qué más desea saber?

Vea también

Conceptos

Archivos DLL