На этом шаге мы рассмотрим способы получения информации о связях.
Обычно пользователь не знает о связях программы. Он замечает их только тогда, когда для запуска программы не хватает какого-либо файла. При этом появляется сообщение о том, что приложение не может быть запущено, потому что не найден некий файл.
Утилита Dependency Walker отображает информацию о связях программы, считывая их список из заголовка файла. Результат ее работы представлен на рисунке 1.
Рис.1. Утилита Dependency Walker
При помощи утилиты Dependency Walker можно получить следующую информацию:
Dependency Walker - MDI-приложение, поэтому допустимо открыть в нем несколько окон для просмотра связей разных файлов. Как показано на рисунке 1, окно утилиты Dependency Walker состоит из четырех панелей, назначение которых описано в таблице 1.
Панель | Описание |
---|---|
Дерево связей модуля | Дерево, показывающее иерархию связей программы. Некоторые названия в нем повторяются, так как разные модули иногда зависят от одного и того же модуля |
Список импортируемых функций родительского модуля | Список импортируемых функций родительского модуля для компонента, выбранного в дереве связей модуля. Импортируемые - это функции, вызываемые родительским модулем. Выбранный компонент должен экспортировать все функции, импортируемые из него родительским модулем. Если же компонент не экспортирует ожидаемую родительским модулем функцию, то при загрузке данного компонента возникнет ошибка неразрешенной внешней ссылки |
Список экспортируемых функций | Список функций, экспортируемых выбранным в дереве связей модулем. Экспортируемые - это функции, которые модуль предоставляет другим модулям |
Список модулей | Список всех связей программы. Он определяет минимальный набор файлов, необходимых для запуска приложения |
Со следующего шага мы начнем знакомиться с утилитой Spy++.