Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

14.2. Динамически присоединяемые библиотеки (dll,ActiveXdll)

DLL (Dynamic Linked Library) представляют собой компоненты приложений, объединяющие несколько функций, классов в одном файле, которые динамически вызываются из файла при выполнении приложений. DLL-библиотеки пришли на смену OCX-компонентам.

Объявление функции из динамических библиотекимеет ряд общих черт, рассмотрим их.

Выбор области видимости (п. 2.10.2) определяется словами Public(функция открыта для всего приложения) иPrivate(закрыта, доступна в пределах формы).

Подключение нужной функции из конкретной DLL-библиотеки реа­ли­зуется командой объявления (п. 2.10.1):

Declare Function <имя функции> Lib <имя DLL-файла> Alias <псевдоним>

(список параметров) As <тип возвращаемого результата>

Параметры бывают двух типов: не изменяемые функцией (ByVal) и изменяемые (ByRef) (п. 2.10.2).

VisualBasicне имеет средств созданияDLL‑библиотек с набором функций. Можно создавать только библиотеки ActiveX DLL с классами.

Создание проекта ActiveX DLL:

  1. Создается новый проект типа ActiveX DLL и выполняется коман­даProject/Add Module/New/Moduleдля создания модуля.

  2. Cоздается процедураMain()(точка входа в библиотеку), опре­де­ляют­ся свойства и методы, формы и объекты.

  3. Cвойству класса модуляInstancingзадается значение 5-MultiUse.

  4. В свойстве проекта укажите Startup Object=Sub Main, введите имя и описание проекта.

  5. Выполните команду File/Make <имя проекта>.DLL.

Использование скомпилированных DLL:

  1. Инсталляция - копирование DLLи всех необходимых ей ком­по­нен­тов и файлов на компьютер пользователя.

  2. Регистрация DLLв системном реестреWindowsпользователя прог­раммойRegsvr32.

  3. Подключение DLLк проекту через окно References командойProject/References (в спискеAvailableReferencesотметьте флажком нуж­ныйActiveXDLL).

Доступ к классу, определенному в другом компонентеActiveX, тре­бу­ет уточнения в виде имени проекта (Dim Nahalnik As New SotrDLL.Sotr).

14.3. Функции Windows api

Функции, которые содержатся в DLL-библиотеках Windows, назы­ва­ют API-функциями. Для просмотра этих функций вызовите из меню Start программуAPI Text Viewerиз программной группы Visual Basic и вы­пол­ните командуFile/Load Text File\Win32.api\Open. В API Viewer выполните командуFile/Load Text File для загрузки текстового файла в базу данных, что ускоряет работу по поиску (появляется кнопка поиска функции по пер­вым символам в ее наименовании).

Пример.Установите API Type=Declare и найдите функцию sndPlay­Sound (можно ввести первую букву имени функции или воспользоваться кнопкойSearch). Нажмите копкуAdd, а затемCopyдля копирования объявления функции в буфер (рис. 14.3.1).

Создадим новый проект типа Standard EXE, перейдем в секцию (General)(Declaration) формы и нажмем клавиши ^Vдля вставки из буфера объявления функции sndPlaySound и перед Declare вставим словоPrivate:

Private Declare Function sndPlaySound Lib ”winmm.dll” Alias ”sndPlaySoundA” _

(ByVal lpszSoundName As String, ByVal uFlags As Long ) As Long

Рис.14.3.1. Объявление функции sndPlaySound

Составим процедуру, выполняемую при загрузке формы:

Private Sub Form_Load() ‘вывод звукового оформления при загрузке

Dim r As Long ‘переменная с результатом работы функции

r=sndPlaySound(”c:\win98\media\tada.wav”,1) ‘проигрывание указанного файла

End Sub