Introducción a las dependencias de una aplicación de Visual C++
Una forma de determinar de qué bibliotecas de Visual C++ depende su aplicación es observar la ficha General del cuadro de diálogo Páginas de propiedades del proyecto. Por ejemplo, podría ver que el proyecto está utilizando las bibliotecas MFC y ATL. Si eligió Utilizar MFC en una biblioteca dinámica, la aplicación depende en tiempo de ejecución de archivos DLL de MFC, por ejemplo mfc100.dll. Si la aplicación no usa MFC ni ATL, podría seguir dependiendo de la biblioteca CRT si en la ficha Generación de código de la rama C/C++ de Propiedades de configuración ha elegido DLL de depuración multiproceso (/MDd) para Biblioteca en tiempo de ejecución.
La forma más completa de determinar los archivos DLL de los que depende la aplicación es abrirla utilizando Dependency Walker (depends.exe). Puede descargar Dependency Walker desde http://www.dependencywalker.com.
Al utilizar depends.exe o la herramienta DUMPBIN con la opción /DEPENDENT, se puede ver una lista de archivos DLL que se vinculan estáticamente a la aplicación, así como una lista de archivos DLL de carga retrasada de la aplicación.
Para ver qué archivos DLL se cargan dinámicamente, por ejemplo, controles ActiveX, utilice la característica de generación de perfiles de depends.exe. A continuación, pruebe la aplicación hasta que esté seguro de que se han utilizado todas las rutas de acceso del código. Al finalizar la sesión de generación de perfiles, depends.exe mostrará qué archivos DLL se cargaron dinámicamente.
Al utilizar depends.exe, tenga en cuenta que una DLL puede tener una dependencia en otra DLL o en una versión de una cierta DLL. Puede utilizar depends.exe en el equipo de desarrollo o en un equipo de destino. En el equipo de desarrollo, depends.exe indica qué archivos DLL son necesarios para admitir una aplicación. Si tiene dificultades para lograr que una aplicación se ejecute en un equipo de destino, puede copiar depends.exe al equipo de destino y abrir la aplicación en depends.exe. Depends.exe notifica qué archivos DLL de la aplicación faltan o tienen una versión incorrecta.
Una vez que tenga una lista completa de los archivos DLL de los que depende la aplicación, puede determinar cuáles de dichos archivos DLL debe redistribuir con la aplicación al realizar la implementación en otro equipo. En la mayoría de los casos, no es necesario redistribuir los archivos DLL del sistema, pero puede que deba redistribuir los archivos DLL para las bibliotecas de Visual C++. Para obtener más información, vea Determinar qué archivos DLL se redistribuirán.