2011-11-21 25 views
6

Estoy usando Visual C++ 2008 Express Edition para crear una DLL de solo recursos. El problema que estoy enfrentando es que la ejecución de la aplicación que hace uso de la DLL en otro equipo además de la mía resulta en función LoadLibrary() en su defecto con el código de error 14001.LoadLibrary falla con el código de error 14001

Buscando throught internet parece ser un dependecy problema de la computadora que ejecuta la aplicación que carece de bibliotecas del paquete redistribuible de Microsoft Visual C++ 2008.

Mi primer paso fue instalar el último paquete redistribuible de Microsoft Visual C++ 2008, pero eso no solucionó el problema.

También modifiqué la configuración de mi proyecto para que la DLL compilara con enlaces CRT estáticos asumiendo que así eliminaré las dependencias.

Estas opciones parecen ser las soluciones para otras personas que tienen el mismo problema. Cualquier idea en qué dirección mirar es muy apreciada.

Gracias

========================================= =======================

Gracias por su respuesta.

Tanto Dependency Walker como el visor de eventos indicaron un problema de configuración uno al lado del otro ya que me faltaba una biblioteca de versión de depuración del paquete redistribuible de VC++.

Fui descuidado y compilé mi DLL en modo de depuración, recompilando en modo de lanzamiento resuelto el problema.

+0

Creo que hay una opción en alguna parte para crear realmente una DLL de solo recursos; p.ej. no generará DllMain y extraerá MFC, ATL, CRT, etc. Pruebe Linker/Advanced - No Entry Point – Luke

Respuesta

7

tratar de aislar biblioteca falta por Dependency Walker:

http://www.dependencywalker.com/

Sólo tiene que ejecutar su aplicación en el segundo equipo con esta herramienta, lo que debería te digo qué biblioteca falta Asegúrese de instalar la versión correcta del paquete redistribuible de Visual C++ 2008; hay dos de ellos, para VS 2008 con SP1 y sin SP ...

0

Tuve los mismos problemas pero con Visual Studio 2013; un conjunto de depuración de DLL que requiere un manifiesto. En mi caso, Microsoft.DTfW.DHL.manifest y dbghelp.dll tuvieron que agregarse a la ruta (utilicé el directorio exe).

Cuestiones relacionadas