Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Указания к выполнению работы




 

Этап 1. Запустите оболочку Delphi.

Командой главного меню File|New откройте диалоговое окно и на его закладке "New" выполните два коротких нажатия на пиктограмме с названием "DLL". При этом в окне редактора кода должен появиться шаблон проекта динамической библиотеки.

Основное отличие этого проекта от стандартного (содержащего форму) состоит в том, что в нём вместо ключевого слова "program" используется слово "library", не содержится объекта TApplication, дополнительного модуля и главной формы.

Для простоты и наглядности разместим в нашей DLL всего две процедуры. Одна из них будет производить на экране отрисовку эллипса и прямоугольника по передаваемым параметрам этих фигур, вторая – будет выводить на экран сообщение с заданным содержанием.

Для этого, прежде всего, укажите в разделе uses используемые модули:

 

WinTypes, WinProcs;

 

в разделе var объявите переменную для работы с экраном:

 

DC : hDC; { hDC - тип указателя на специальную структуру данных,

называемую контекстом устройства }

 

и далее расположите описание функций:

 

procedure Graphic (X, Y, W : Integer); export;

Begin

Try

// получить контекст дисплея

DC := CreateDC ('DISPLAY', NIL, NIL, NIL);

// отрисовать эллипс

Ellipse (DC, X, Y, X+W, Y+W);

// отрисовать прямоугольник

Rectangle (DC, X+100, Y+100, X+W, Y+W);

finally // в любом случае

DeleteDC (DC); // освободить контекст дисплея

end;

end;

procedure MessagePlus (S : PChar); export;

Begin

MessageBox (0, S, 'Сообщение',

Mb_OK or MB_ICONINFORMATION);

end;

 

Обратите внимание на оператор "export", который должен присутствовать в программе после заголовка каждой процедуры или функции. Это ключевое слово указывает компилятору на необходимость создания специального пролога и эпилога для таких функций (чтобы впоследствии можно было их использовать, вызывая из других программ, – "экспортировать").

Далее по тексту программы надо создать секцию "exports", в которой требуется перечислить все экспортируемые библиотекой функции и указать их уникальные идентификаторы, обычно начинающиеся с 1 для первой функции, с 2 – для второй и т. п.:

 

Exports

Graphic index 1,

MessagePlus index 2;

 

Проверьте проект библиотеки на наличие ошибок, сохраните его в новой директории с именем "DLLPlus.dpr" (дополнительная динамическая библиотека), выполните команду главного меню File|Close All и переходите к следующему этапу.

Этап 2. Подготовку интерфейсного модуля динамической библиотеки начните с команды главного меню File|New и выполнения двойного нажатия на пиктограмме "Unit" с закладки "New" в появившемся диалоговом окне.

Как и на первом этапе, укажите здесь в разделе uses используемые модули:

 

WinTypes, WinProcs;

 

После объявите интерфейсные функции:

 

procedure Graphic (X, Y, W : Integer);

procedure MessagePlus (S : PChar);

 

а в разделе implementation опишите их, указав, что они вызываются из внешней библиотеки "DLLPlus" по соответствующим индексам (при этом в названии библиотеки расширение отсутствует):

 

procedure Graphic; external 'DLLPlus' index 1;

procedure MessagePlus; external 'DLLPlus' index 2;

 

Сохраните этот модуль с именем "DLLLib.pas" в одной директории с файлом DLLPlus.dpr.

Этап 3. Создайте новый проект.

В разделе используемых библиотек uses укажите интерфейсный модуль с названием "DLLLib".

Поместите на форму кнопку любого типа. Её свойству Caption присвойте значение "Вызов функций из DLL".

Внутри обработчика события OnClick для кнопки запрограммируйте вызов функций из динамической библиотеки, например, следующим образом:

 

MessagePlus ('Сейчас на экране будут нарисованы эллипс и прямоугольник

посредством вызова функции из DLL.');

Graphic (200, 200, 50);

 

Сохраните проект в директории, где расположены файлы DLLLib.pas и DLLPlus.dpr. Командой главного меню Project|Build All Projects откомпилируйте его, получив EXE - файл (не запускайте этот файл – он ещё не пригоден для выполнения: не готова динамическая библиотека с расширением .DLL).

Закройте проект командой File|Close All и вернитесь к сохранённому проекту "DLLPlus.dpr".

Откомпилируйте библиотеку командой Project|Build All Projects, получив соответствующий файл с расширением .DLL.

Командой Run|Parameters вызовите диалоговое окно установки параметров использования динамической библиотеки. Здесь на закладке Local в окне редактора Host Application укажите приложение, которое будет использовать данную библиотеку (EXE - файл проекта, в котором Вы производите вызов процедур из DLL). Воспользуйтесь при этом кнопкой Browse.

После (при работе в Delphi 4.0 нажмите кнопку Load — должно появиться окно отладчика) клавишей F9 откомпилируйте DLL ещё раз.

Проверьте, как работает Ваша программа, запустив её с командной строки.

Продемонстрируйте результаты вызова функций динамической библиотеки преподавателю.

 

Контрольные вопросы и задания

 

1. Дайте определение библиотеки динамической компоновки.

2. Укажите основные отличия проекта DLL от стандартного.

3. Каково назначение ключевого слова “export?

4. Каково назначение ключевого слова “exports?

5. Опишите структуру интерфейсного модуля динамической библиотеки.

6. Каково назначение ключевого слова “external”?

7. Каким образом скомпилировать DLL для работы с выбранным приложением?

 

 

Лабораторная работа №11 (2 часа)

 

Справочная система приложения

 

Цель: освоить технологию подготовки справочной системы для проекта приложения в среде Delphi.

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше),

утилита HTML Help Workshop, текстовый редактор MS Word.

 

Задание

 

Разработать справочную систему в формате .chm и подключить её к проекту приложения из предыдущей лабораторной работы.

 

Программа работы

 

1. Ознакомиться с известными технологиями подготовки справочных систем для ОС семейства Windows.

2. Изучить последовательность подготовки справочной системы формата .chm с помощью утилиты HTML Help Workshop.

3. Создать с помощью редактора MS Word несколько (не менее трёх) html-файлов для компиляции в проект справочной системы.

4. Подготовить и скомпилировать в среде HTML Help Workshop проект справочной системы с оглавлением и ключевыми словами на основе созданных в п.3 html-документов.

5. Выявить и исправить ошибки.

6. Подключить полученный файл .chm к приложению из предыдущей лабораторной работы, перекомпилировать его.

7. Продемонстрировать результаты выполнения работы преподавателю.

 

Пояснения к работе

 

В настоящее время используются две технологии создания справочной системы для приложений Windows.

Первый подход предусматривает создание справочного файла с расширением .hlp. При запуске справочной системы автоматически выполняется программа winhelp.exeили winhlp32.exe. Следует отметить, что в Windows Vista этот формат представления справочной информации для приложений уже не поддерживается. Поэтому при выполнении данной лабораторной работы остановимся на технологии, появившейся позднее и предназначенной для создания файлов справки формата .chm и основанной на технологии html.

При использовании второго подхода файл справки создается путем компиляции любого числа html-файлов и прилегающих к ним элементов (например картинок) в один файл формата chm, который вызывается через отдельный URL-указатель. Для компиляции файла справки .chm используется утилита HTML Help Workshop. Эту утилиту можно скачать с сайта фирмы Microsoft.

Выполняемую работу можно разбить на этапы:

1) подготовка html-файлов;

2) компиляция файла справки утилитой HTML Help Workshop;

3) организация вызова справки из приложения.

На первом этапе все сведения, которые необходимо включить в справочную систему, оформляются в виде html-файлов любым доступным способом. На третьем этапе в обработчик пункта меню, вызывающего справочную систему, включается команда для запуска файла формата chm. Этот файл запускается как внешний одной из команд API Windows: WinExec, ShellExecute или CreateProcess. Правила использования перечисленных команд были освоены Вами при выполнении лабораторных работ по курсу "Операционные системы", а также описываются в разделе "Windows API" справочной системы Delphi.

Таким образом, более подробного рассмотрения требует этап компиляции файла справочной системы. Предварительно необходимо установить на компьютере программу HTML Help Workshop.

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 157.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...