Основные сведения о зависимостях приложения Visual C++

Чтобы определить, от каких библиотек Visual C++ зависит определенное приложение, необходимо открыть вкладку Общие в диалоговом окне Страницы свойств определенного проекта. На вкладке может отображаться, что данный проект использует, например, библиотеки MFC и ATL. Если выбран пункт Использовать MFC в динамической библиотеке, во время выполнения данное приложение зависит от библиотек DDL MFC, например, mfc100.dll. Если приложение не использует MFC или ATL, оно все равно может зависеть от библиотеки CRT, если на вкладке Создание кода в ветви C/C++ Свойств конфигурации было выбрано значение Многопоточная DLL с возможностью отладки (/MDd) для параметра Библиотека среды выполнения.

Для определения библиотек DLL, от которых зависит определенное приложение, лучше всего открыть это приложение с помощью средства Dependency Walker (depends.exe). Средство Dependency Walker можно загрузить с сайта http://www.dependencywalker.com.

С помощью depends.exe или служебной программы DUMPBIN с параметром /DEPENDENTS можно просмотреть список библиотек DLL, которые статически связываются с определенным приложением, а также список библиотек DLL, загружаемых отложенно.

Чтобы увидеть, какие библиотеки DLL, такие как элементы управления ActiveX, находятся в процессе динамической загрузки, воспользуйтесь функцией профилирования depends.exe. Затем проверьте приложение, чтобы убедиться, что были задействованы пути всех кодов. После завершения профилирования depends.exe отображает библиотеки DLL, которые были динамически загружены.

Используя depends.exe, помните, что библиотека DLL может зависеть от другой библиотеки DLL или от ее конкретной версии. Depends.exe можно использовать на компьютере разработчика или на конечном компьютере. На компьютере разработчика depends.exe отражает библиотеки DLL, которые требуются для поддержки приложения. Если при запуске приложения на конечном компьютере возникают проблемы, можно скопировать depends.exe на конечный компьютер и открыть приложение в depends.exe. Depends.exe отражает недостающие библиотеки DLL, а также библиотеки несовместимых версий.

После получения полного списка библиотек DLL, от которых зависит определенное приложение, можно определить, какие из этих библиотек необходимо распространять вместе с приложением при его развертывании на другом компьютере. В большинстве случаев нет необходимости в распространении системных библиотек DLL, однако возможно потребуется распространять библиотеки DLL Visual C++. Дополнительные сведения см. в разделе Определение библиотек DLL для распространения.

См. также

Другие ресурсы

Развертывание (Visual C++)