Suprimir el cuadro de error "No encuentra MYDLL.DLL"

Seleccione idioma Seleccione idioma
Id. de artículo: 111610 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

Al cargar explícitamente una dynamic-link biblioteca (DLL) mediante LoadLibrary(), Windows mostrará un cuadro de mensaje "error de archivo" con el error
No se puede encontrar MYDLL.DLL
donde MYDLL.DLL es el nombre de la DLL especificada en LoadLibrary() antes de abandonar LoadLibrary() si el archivo DLL no existe en la ruta de acceso de Windows. Para obtener más información acerca de la ruta de acceso de Windows, consulte el orden que se describe en la documentación de LoadLibrary() de búsqueda de Windows.

Es posible suprimir este mensaje de error para que se puede implementar un mensaje de error personalizado o de otro control de errores sin este cuadro de error de sistema. Para ello, llame al SetErrorMode() con SEM_NOOPENFILEERRORBOX antes de llamar a LoadLibrary(). LoadLibrary() devolverá significado 2 código de error "Archivo no se ha encontrado".

Más información

SetErrorMode() sólo afecta al modo de error de la tarea actual y no afecta a todo el sistema. El valor devuelto se puede utilizar para alternar el modo de error en distintas partes de una aplicación.

Para una DLL cargada implícitamente que puede faltar, el sistema mostrará el cuadro error mencionado anteriormente, si la aplicación se ejecuta desde el programa Administrador. Después de hacer clic en el botón Aceptar, aparece el siguiente mensaje:
No se puede encontrar archivo d:\path\myexe.exe (o uno de sus componentes).
Asegúrese de que el nombre de archivo y la ruta de acceso son correctos y que todas las bibliotecas requeridas están disponibles.
Desde el Administrador de archivos no aparece ningún cuadro de mensaje "error de archivo", pero el mensaje siguiente se muestra en su lugar:
Administrador de archivos no puede encontrar el archivo especificado (o uno de sus componentes).

Asegúrese de que la ruta de acceso y nombre de archivo son correctos y que todas las bibliotecas requeridas están disponibles.
Debido a que estos mensajes de error aparecen antes WinMain() de la aplicación se ejecute, SetErrorMode() no puede suprimir los cuadros mensaje de error para archivos DLL vinculadas implícitamente. Además, no hay ninguna forma de configurar Administrador de programas para suprimir el cuadro de mensaje "error de archivo".

Código de ejemplo

 {
 HINSTANCE hDLL;
 UINT uOldErrorMode;

 uOldErrorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX);

 // Try to load DLL.
 hDLL = LoadLibrary("MYDLL.DLL");

 if (hDLL == 2)
    MessageBox(NULL, "MYDLL.DLL does not exist", "ERROR", MB_OK);
 else if (hDLL <= HINSTANCE_ERROR)
    MessageBox(NULL, "Other problems loading MYDLL.DLL, "ERROR", MB_OK);
 else
 {
    MessageBox(NULL, "MYDLL.DLL exists", "SUCCESS", MB_OK);
    FreeLibrary(hDLL);
 }

 SetErrorMode(uOldErrorMode);  // Can restore error mode if desired.
 }
				

Propiedades

Id. de artículo: 111610 - Última revisión: sábado, 01 de febrero de 2014 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
Palabras clave: 
kbnosurvey kbarchive kbmt kb16bitonly KB111610 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 111610

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com