Contents

# Declare Statement

宣告和定義要透過 LibreOfficeDev Basic 執行的 DLL 檔案中的子常式。

另請參閱：FreeLibrary

### Syntax:

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

### Parameters:

Name：透過 LibreOfficeDev Basic 呼叫子常式時使用的名稱，與 DLL 中定義的名稱不同。

Aliasname：DLL 中定義的子常式的名稱。

Libname：DLL 的檔案名稱或系統名稱。在第一次使用此函式時，會自動載入此程式庫。

Argumentlist：參數清單，其中的參數表示傳送到所呼叫的程序的各個引數。參數的類型和數量取決於所執行的程序。

Type：定義某個函式程序傳回值的資料類型。如果在名稱之後輸入了類型宣告字元，則可以省略此參數。

若要將參數作為數值而不是作為參照傳送至子常式，則該參數必須由關鍵字 ByVal 指示。

### Example:

    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

Please support us!