
4.5.4. Дополнительные средства отладки Delphi
Отладка DLL. Delphi дает возможность отладки библиотек динамической компоновки описанными выше методами
Окно CPU (дизассемблер) Окно CPU предоставляет возможность увидеть работу приложения на уровне языка ассемблераЭффективное его использование предполагает знание ассемблера Intel x86 и архитектуры процессора.
Окно состояния подзадач. Окна Thread Status, Modules и Call Stack предоставляют дополнительную информацию, которая может быть полезна при отладке приложения В окне Thread Status перечислены все активные подзадачи текущего процесса.
Окно Modules. В окне Modules отображаются все модели (ЕХЕ-файл приложения и все используемые динамические библиотеки), которые располагаются в адресном пространстве приложения. В него входят непосредственно подключенные DLL и библиотеки, подключенные через другие библиотеки, а также библиотеки, загруженные операционной системой.
Окно Call Stack. В этом окне представлен список всех функций и процедур, вызванных к моменту достижения точки выполнения и работа которых приостановлена.
OLE
1.0 в Windows 3.1 и означала, что пользователь мог создавать сложные составные документы, в которых содержались объекты различного происхождения; Внедренные объекты могли редактироваться простым двойным щелчком мыши на соответствующем элементе данных. Например, можно было дважды щелкнуть на электронной таблице Excel, встроенной в документ редактора Word, и в отдельном окне запускался Excel с загруженным рабочим листом, готовым к редактированию. После завершения редактирования Excel позволял сохранить изменения во внедренном в документ Word объекте Excel.
Другой особенностью было связывание объектов. Это позволяло связать электронную таблицу с документом Word (по сути внутри документа Word хранился просто указатель на электронную таблицу). Если данные в оригинале электронной таблицы обновлялись, то при следующей загрузке документа Word ссылка обновляла документ и отражала в нем проведенные изменения.
Дальнейшее развитие внедрение и связывание получило в OLE 2.O. Основой этого усовершенствованного подхода явилась компонентная модель объекта (СОМ). Это модель объекта в системном обеспечении, которая предусматривает полную совместимость во взаимодействии между компонентами, написанными разными компаниями и на разных языках. Ключом к успеху является модульность этих компонентов. Они могут покупаться, модернизироваться или заменяться поодиночвее или группами, причем это никак не влияет на работу целого.
СОМ рпрвцеляет двоичный интерфейс, полностью независимый от языка про-ilniiliH^i||i|JUi, использованного при реализации компонента. Компонент, напи-санный I»Щвт^тствии со спецификациями двоичного интерфейса СОМ, может вступать во взаимодействие с другим компонентом, не зная в действительности ничего о реализации последнего.
Новая особенность, появившаяся в OLE 2.0, — это автоматизация OLE, которая обеспечивает доступ к объектам приложения и манипуляцию с ними извне. Такие объекты, предоставленные (экспонированные) для внешнего пользования, называются автоматными объектами OLE. Типы объектов, которые могут быть экспонированы, так же разнообразны, как и сами приложения Windows. Текстовый Процессор может экспонировать в качестве автоматного объекта документ, абзац или предложение. Электронная таблица может экспонировать таблицу, диаграмму, ячейку или группу ячеек.
Главное отличие автоматных объектов от обычных объектов OLE состоит в том, что автоматные объекты доступны только программно, они создаются и используются при помощи программного кода и, следовательно, в принципе временны. Они не могут быть внедрены или связаны. Они могут существовать тодф^о в течение времени выполнения ваших программ и не видны непосредственно конечному пользователю.
Существуют два типа автоматных серверов: внутри-процесса и вне-процесса (их еще называют локальными). C++Builder поддерживает оба типа серверов.
Сервер внутри процесса являете^ DLL (динамически связываемой библиотекой), которая экспортирует1 автоматные объекты. Поскольку автоматные объекты поставляются из DLL, а не из других приложений, они являются частью приложения клиента. Это избавляет от больших накладных расходов, сопутствующих каждому вызову автоматного сервера.
Сервер вне-процесса — это автономный исполняемый файл, экспортирующий автоматные объекты. Примером этого мог бы быть Microsoft Word. Word имеет некоторое количество объектов, которые оц экспедирует в качестве автоматных. Позже будет приведен пример использования Word как автоматного сервера.