tag puede programa porque iniciarse falta equipo dll dependencies x86 64bit loadlibrary

el programa no puede iniciarse porque falta tag dll en el equipo



LoadLibrary está fallando con el error de módulo no encontrado-posibles problemas de dependencia (2)

¿Puedes depurar en el DllMain del otro dll? En caso afirmativo, puede verificar directamente en el depurador. Con Windbg puedes interrumpir la carga del módulo para que puedas dar un solo paso. ¿Vinculas directamente contra la lib del dll? De lo contrario, podría intentar hacerlo para verificar qué mensaje de error le mostrará el sistema operativo. Si es 0xC0000142, DllMain devolvió falso. Si es 0xC0000022, el ejecutable o uno de los dlls dependientes no tienen derechos de ejecución. Tu código 126 es simplemente Módulo no encontrado que parece contar toda la historia. Puede establecer la variable PATH en el directorio a mano en la ubicación del dll faltante. ¿Despliega el dll en alguna otra máquina? En caso afirmativo, podría ser que esté enlazando con el C-Runtime de depuración que no está instalado en las máquinas normales.

Atentamente, Alois Kraus

He intentado cargar un dll de 32 bits usando C ++ (desde una aplicación de 32 bits, en Windows 7 de 64 bits). LoadLibrary devuelve NULL y GetLastError devuelve 126 para "No se pudo encontrar el módulo especificado".

Estoy pasando la dirección completa a la función LoadLibrary. Abrí el dll en Dependency Walker, que decía que GPSVC.dll era una dependencia perdida.

Desde la búsqueda en Google que he hecho, parece que Dependency Walker a menudo muestra falsamente este GPSVC.dll como una dependencia faltante, y no hay una versión de 32 bits, por lo que no creo que ese sea el problema real.

No he hecho demasiado truco con dlls en el pasado, así que espero que sea un problema relativamente simple del que pueda aprender.

¡Gracias de antemano por cualquier ayuda!


Bueno, resolví mi problema y desafortunadamente es una solución bastante obvia. Agregué el directorio que contenía mi dll a la variable PATH. Aparentemente, los dlls no buscan en sus propios directorios sus dependencias.