Основные сведения о зависимостях приложения Visual C++Understanding the Dependencies of a Visual C++ Application

Чтобы определить, от каких библиотек Visual C++ зависит приложение, можно просмотреть свойства проекта.To determine which Visual C++ libraries an application depends on, you can view the project properties. (В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт Свойства, чтобы открыть диалоговое окно Страницы свойств.) В Windows 8 и более ранних версиях также можно использовать средство Dependency Walker (depends.exe), которая предоставляет более полную картину зависимостей.(In Solution Explorer, right-click on the project and choose Properties to open the Property Pages dialog box.) On Windows 8 and earlier, you can also use the Dependency Walker (depends.exe), which gives a more comprehensive picture of the dependencies. Для более поздних версиях Windows lucasg/зависимости средство предоставляет такие же функции, (это сторонние средства, не гарантируется корпорацией Майкрософт).For more recent versions of Windows the lucasg/Dependencies tool provides similar functionality (this is a third-party tool not guaranteed by Microsoft.)

В диалоговом окне Страницы свойств можно просмотреть различные страницы в области Свойства конфигурации, чтобы понять зависимости.In the Property Pages dialog box, you can examine various pages under Configuration Properties to understand the dependencies. Например, если в проекте используются библиотеки MFC и выбрано Использование MFC, Использовать MFC в общей DLL на странице Свойства конфигурации > Общие, то во время выполнения приложение будет зависеть от библиотеки DLL MFC, например mfc<version>.dll.For example, if your project uses the MFC libraries and you choose Use of MFC, Use MFC in a Shared DLL on the Configuration Properties, General page, your application at run time depends on MFC DLLs such as mfc<version>.dll. Если приложение не использует MFC, оно может зависеть от библиотеки CRT, если значение Библиотека времени выполнения задано для параметра Многопоточная DLL с возможностью отладки (/MDd) или Многопоточная DLL (/MD) на странице Свойства конфигурации, C/C++, Создание кода.If your application doesn't use MFC, it might depend on the CRT library if you choose a Runtime Library value of Multi-threaded Debug DLL (/MDd) or Multi-threaded DLL (/MD) on the Configuration Properties, C/C++, Code Generation page.

Программа depends.exe позволяет просмотреть список библиотек DLL, статически привязанных к приложению, и список DLL, загружаемых с задержкой.By using depends.exe, you can examine a list of DLLs that are linked to the application at load time, and a list of its delay-loaded DLLs. Если вам нужно получить полный список библиотек DLL, загружаемых во время выполнения динамически, протестируйте приложение с помощью возможности профилирования в depends.exe и убедитесь, что все ветви кода охвачены.If you want to get a complete list of DLLs that are dynamically loaded at run time, you can use the profiling feature in depends.exe to test the application until you're sure that all code paths have been exercised. По завершении профилирования программа depends.exe отображает библиотеки DLL, динамически загруженные в среде выполнения.When you end the profiling session, depends.exe shows which DLLs were dynamically loaded during run time.

При использовании depends.exe помните, что библиотека DLL может зависеть от другой библиотеки DLL или от ее конкретной версии.When you use depends.exe, be aware that a DLL might have a dependency on another DLL or on a specific version of a DLL. Depends.exe можно использовать на компьютере разработчика или на конечном компьютере.You can use depends.exe on either the development computer or on a target computer. На компьютере разработчика depends.exe отражает библиотеки DLL, которые требуются для поддержки приложения.On the development computer, depends.exe reports the DLLs that are required to support an application. При возникновении сложностей с запуском приложения на целевом компьютере можно скопировать на него depends.exe и открыть приложение в этом средстве, чтобы можно было определить, отсутствуют ли какие-либо необходимые библиотеки DLL или верны ли они.If you have trouble getting an application to run on a target computer, you can copy depends.exe to it and then open the application in the tool so that you can determine whether any required DLLs are missing or incorrect.

Если вам известно, от каких библиотек DLL зависит приложение, можно определить те из них, которые необходимо распространять вместе с приложением при его развертывании на другом компьютере.When you know which DLLs your application depends on, you can determine the ones that you have to redistribute with your application when you deploy it to another computer. В большинстве случаев нет необходимости в распространении системных библиотек DLL, однако, возможно, потребуется распространять DLL для библиотек Visual C++In most cases, you don't have to redistribute system DLLs, but you may have to redistribute DLLs for Visual C++ libraries. Дополнительные сведения см. в разделе Определение библиотек DLL для распространения.For more information, see Determining Which DLLs to Redistribute.

См. такжеSee also

Развертывание классических приложенийDeploying Desktop Applications