Inhoud

# Instructie Declare

Declareert en definieert een subroutine in een DLL-bestand die u wilt uitvoeren via LibreOffice Basic.

Zie ook: FreeLibrary

### Syntaxis:

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

### Parameters:

Naam: Een andere naam dan die in de DLL gedefinieerd is, om de subroutine uit LibreOffice BASIC aan te roepen.

Aliasnaam: Naam van de subroutine zoals die in de DLL is gedefinieerd.

Bibnaam: Bestands- of systeemnaam van de DLL. Wanneer de functie voor het eerst wordt gebruikt, wordt deze bibliotheek automatisch geladen.

Argumentenlijst: Lijst met parameters die voor argumenten staan die aan de procedure worden doorgegeven wanneer deze aangeroepen wordt. Het type en aantal parameters is afhankelijk van de procedure die uitgevoerd wordt.

Type: Definieert het gegevenstype van de waarde die door een functieprocedure geretourneerd wordt. U kunt deze parameter uitsluiten als er na de naam een type-aanduidingsteken wordt ingevoerd.

Als een parameter als een waarde in plaats van als een verwijzing aan een subroutine doorgegeven moet worden, moet de parameter met het sleutelwoord ByVal worden aangegeven.

### Voorbeeld:

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

## Voorbeeld 2

      REM Bij het doorgeven van matrixen via referentie hoeft u het type van de elementen niet te specificeren.
      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

Help ons, alstublieft!