Introducción a las dependencias de una aplicación de Visual C++

Actualización: noviembre 2007

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 ha seleccionado Utilizar MFC en una biblioteca dinámica, la aplicación depende en tiempo de ejecución de archivos DLL de MFC, por ejemplo mfc90.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 seleccionado DLL de depuración multiproceso (/MDd) para Biblioteca en tiempo de ejecución.

La forma más completa para determinar de qué archivos DLL depende la aplicación es abrirla utilizando Dependency Walker (depends.exe), que se suministra con Visual C++. Depends.exe se instala en \Microsoft Visual Studio 2005\Common7\Tools\bin. Observe que depends.exe sólo se instala si se selecciona la herramienta Windows SDK de Win32, que se encuentra en la categoría de herramientas de Visual C++ de la instalación personalizada de Visual C++.

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, por ejemplo controles ActiveX, se cargan dinámicamente, utilice la función de generación de perfiles de depends.exe. A continuación, pruebe la aplicación hasta asegurarse de que se han utilizado todas las rutas de acceso a 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 encuentra problemas para que una aplicación se ejecute en un equipo de destino, puede copiar depends.exe en él y abrir la aplicación en depends.exe. Éste indicará 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.

Vea también

Otros recursos

Implementación (C++)