Conteúdo

# Instrução Declare

Declara e define uma sub-rotina numa DLL que pretenda executar a partir do LibreOffice Basic.

Consulte também: FreeLibrary

### Sintaxe:

    Declare {Sub | Função} Nome Lib "Nome da biblioteca" [Alias "Nome do alias"] [Lista de argumentos] [Como Tipo]

### Parâmetros:

Nome: um nome diferente do definido na DLL, para invocar a sub-rotina do LibreOffice Basic.

Nome alternativo: nome da sub-rotina conforme definido na DLL.

NomeBib: Nome do ficheiro ou sistema da DLL. Esta biblioteca é automaticamente carregada na primeira vez que a função é utilizada.

Lista de argumentos: a lista dos parâmetros que representam os valores transferidos para o procedimento quando este é invocado. O tipo e o número dos parâmetros dependem do procedimento executado.

Tipo: define o tipo de dados do valor devolvido por uma função. Pode excluir este parâmetro introduzindo um carácter de declaração de tipo após o nome.

Para transferir um parâmetro para uma sub-rotina como um valor em vez de uma referência, o parâmetro terá de ser indicado pela palavra-chave ByVal.

### Exemplo:

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

## Exemplo 2

      NOTA: Ao passar matrizes por referência, não especifique o tipo dos seus elementos.
      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

Necessitamos da sua ajuda!