Contenuto

# Istruzione Declare

Dichiara e definisce una subroutine in una DLL che potete eseguire da LibreOffice Basic.

Vedere anche: FreeLibrary

### Sintassi:

    Declare {Sub | Function} Name Lib "NomeLib" [Alias "NomeAlias"] [Argumentlist] [As Type]

### Parametri:

Nome: nome differente da quello definito nella DLL, usato per chiamare la subroutine da LibreOffice Basic.

NomeAlias: nome della subroutine definita nella DLL.

NomeLib: nome del file o nome di sistema della DLL. Questa libreria viene caricata automaticamente al primo utilizzo della funzione.

ElencoArgomenti: elenco di parametri che rappresenta gli argomenti passati alla procedura al momento della chiamata. Il tipo e il numero dei parametri dipendono dalla procedura eseguita.

Tipo: definisce il tipo di dati del valore restituito da una procedura della funzione. Questo parametro può essere escluso se il nome è seguito da un carattere di dichiarazione del tipo.

Per passare un parametro a una subroutine come valore anziché come riferimento, il parametro deve essere indicato con la parola chiave ByVal.

### Esempio:

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

## Esempio 2

      REM Quando si passano delle matrici per riferimento, non specificare il tipo dei suoi elementi.
      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

Sostienici!