Содержимое

# Declare Statement

Используется для объявления и определения подпрограммы, расположенной в файле DLL, которая должна выполняться из LibreOffice Basic.

См. также: FreeLibrary

### Синтаксис:

    Declare {Sub | Function} Name Lib "Libname" [Alias "Aliasname"] [Argumentlist] [As Type]

### Параметры:

Имя. Имя, отличающееся от имени, определённого в библиотеке DLL, предназначенное для вызова подпрограммы из LibreOffice Basic.

Псевдоимя. Имя подпрограммы, определённое в библиотеке DLL.

Имя_библиотеки. Файловое или системное имя библиотеки DLL. Эта библиотека автоматически будет загружена при первом использовании функции.

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

Тип. Определяет тип возвращаемого функцией/процедурой значения. Этот параметр можно исключить, если дескриптор типа вводится после имени.

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

### Пример:

    Declare Sub MyMessageBeep Lib "user32.dll" Alias "MessageBeep" ( Long )
    Sub ExampleDeclare
    Dim lValue As Long
        lValue = 5000
        MyMessageBeep( lValue )
        FreeLibrary("user32.dll" )
    End Sub

## Example 2

      REM When passing arrays by reference, do not specify the type of its elements.
      Declare Function GetDiag Lib "C:\\...\\Math.dll" _
         Alias "GetDiag" ( _
         ByVal varName As String, _
         A, _
         ByVal len As Long, _
         ByVal FunctionName As String, _
         B, _
         C) As Long
    Sub MyCode
      Dim A(100) As Long, B(100) As Long, C(100) As Long ' arrays
      R = GetDiag("f", A, 100, "g", B, C)
      Print R
    End Sub

Пожалуйста, поддержите нас!