Идёт загрузка страницы...

htp://aptem.net.ru






На главную страничку учебника Visual Basic

Программирование Win32API. Введение.

DLL & API

Как и всякая уважающая себя система программирования для среды Windows, Visual Basic позволяет обращаться к API-функциям, содержащимся в DLL-библиотеках. Точно так же, конечно, можно обращаться и к любым другим DLL-функциям — механизм обращения при этом не меняется.

Синтаксис объявления API-функции

Прежде чем можно будет обратиться к функции из DLL-библиотеки, ее необходимо объявить. Это делается с помощью оператора Declare, два варианта синтаксиса которого будут приведены ниже. Первый вариант относится к объявлению процедуры (DLL-функция не возвращает значения), второй — к объявлению DLL-функции, которая возвращает значение. При объявлении DLL-функций следует учитывать ряд обстоятельств:

  • Если DLL-функция объявляется с помощью оператора Declare в модуле формы, то она должна объявляться как Private. В программном модуле, напротив, DLL-функция должна объявляться, как Public.
  • Чтобы избежать конфликта имен (когда имя DLL-функции совпадает с одним из зарезервированных слов), следует использовать зарезервированное слово Alias в объявлении функции — таким образом можно задать псевдоним для DLL-функции.
  • API-функции используют типы данных языка С, поэтому параметры при вызове API функций следует задавать с учетом совместимости типов С и Visual Basic.
    Итак, вот обещанный синтаксис:

[Private/Public] Declare Sub Имяфункции Lib "ИмяDLL-файла" [Alias "Псевдоним"] [([СписокПарамегров])]


[Private/Public] Declare Function Имяфункции Lib "ИмяDLL-файла"

[Alias "Псевдоним"] [([СписокПараметров}]] As ИмяТипа

Рассмотрим каждый параметр:

  • Имяфункции. Имя функции или процедуры, под которым она будет доступна в коде Visual Basic-программы. Используют настоящие имена функций (как они определены в DLL-библиотеке) или псевдонимы, которые должны быть определены с помощью зарезервированного слова Alias.
  • ИмяDLL-файла. Имя DLL-файла библиотеки, где содержится объявляемая функция.
  • СписокПарамегров. Параметры функции или процедуры. Типы параметров должны быть совместимыми с С-типами, используемыми в API-функциях.
  • ИмяТипа. Определяет тип возвращаемого функцией значения.

Пример:

Эта ф-ция предназначена для копирования изображения с одного контекста устройства на другой.

Declare Function BitBlt Lib "gdi32" _
(ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal
hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal dwRop As Long) As Long

На главную страничку учебника Visual Basic