Access 2002

Структура оператора Declare


Если вы не собираетесь использовать никаких DLL-функций, кроме Windows API, вам едва ли понадобится составлять операторы Declare. Для Windows API все они уже раз и навсегда написаны и объединены в одном файле, WIN32API.TXT, откуда их можно благополучно копировать. Однако рано или поздно вам может понадобиться функция из какой-нибудь другой DLL, для которой оператор Declare заранее не подготовлен. Тогда его придется написать самостоятельно. Кроме того, и сам файл WIN32API.TXT не совершенен. Во-нервых, некоторые из имеющихся в нем операторов Declare не позволяют вызывать объявленные в них функции с аргументами определенных типов, которые самими функциями допускаются, а во-вторых, мы нашли в этом файле несколько ошибок. Они могут быть уже исправлены в вашей версии WIN32API.TXT, а могут и остаться. Так что в любом случае умение составлять операторы Declare может вам пригодиться.

Оператор Declare предоставляет VBA шесть видов информации о процедуре из внешней библиотеки:

область ее видимости в вашем проекте;

имя, которое вы хотите использовать для вызова процедуры из своего кода; О имя файла и путь к DLL, в которой эта процедура содержится;

количество и типы данных аргументов процедуры;

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

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

Комментарии закрыты