Access 2002

Оператор Declare


Оператор Declare определяет размер и тип каждого из передаваемых в DLL аргументов. Очень важно, чтобы это определение в точности совпадало с тем, которое ожидает получить процедура. Иначе вы можете передать DLL неверную информацию, а та, в свою очередь, может попытаться обратиться к недоступной ей области памяти, что вызовет ошибку общей защиты. Windows генерирует такую ошибку, когда любое приложение пытается получить доступ к области памяти, на которую у него нет прав чтения или записи. В результате такой ошибки Access просто «вылетает» — выгружается из памяти, не дав вам шанса сохранить измененные объекты.

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

Если вы объявляете процедуру, которая ничего не возвращает (то есть в языке программирования С тип возвращаемого ею значения объявлен как void), используйте для нее формат Declare Sub. Если же вы объявляете функцию, возвращающую значение, используйте формат Declare Function.

Public против Private

В любом объявлении процедуры задается область ее видимости, иными словами, указывается, откуда ее можно вызывать.

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