Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shimarik / Shimarik / Мусор.doc
Скачиваний:
14
Добавлен:
16.04.2013
Размер:
293.38 Кб
Скачать

4.5.4. Дополнительные средства отладки Delphi

  1. Отладка DLL. Delphi дает возможность отладки библиотек динамической компоновки описанными выше методами

  2. Окно CPU (дизассемблер) Окно CPU предоставляет возможность увидеть работу приложения на уровне языка ассемблераЭффективное его использование предполагает знание ассемблера Intel x86 и архитектуры процессора.

  3. Окно состояния подзадач. Окна Thread Status, Modules и Call Stack предоставляют дополнительную информацию, которая может быть полезна при отладке приложения В окне Thread Status перечислены все активные подзадачи текущего процесса.

  4. Окно Modules. В окне Modules отображаются все модели (ЕХЕ-файл приложения и все используемые динамические библиотеки), которые располагаются в адресном пространстве приложения. В него входят непосредственно подключенные DLL и библиотеки, подключенные через другие библиотеки, а также библиотеки, загруженные операционной системой.

  5. Окно 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 как автоматного сервера.