首頁 > 後端開發 > Golang > 如何從我的 Go 應用程式呼叫 C# DLL?

如何從我的 Go 應用程式呼叫 C# DLL?

Mary-Kate Olsen
發布: 2024-12-26 04:17:13
原創
843 人瀏覽過

How Can I Call C# DLLs from My Go Applications?

在 Go 應用程式中使用 C# DLL

從 Go 應用程式呼叫 C# DLL 提出了獨特的挑戰。雖然 C/C DLL 可以使用系統呼叫加載,但 C# 組件具有不同的格式。

Go-Dotnet 庫

幸運的是,有一個名為go-dotnet 的GitHub 專案( https://github.com/matiasinsaurralde/go-dotnet )彌補了這一差距。該程式庫允許 Go 應用程式載入和利用 .NET 組件,包括 C# DLL。

範例用法

以下是如何呼叫簡單的C# DLL 的範例,該範例新增了兩個數字:

package main

import (
    "fmt"

    "github.com/matiasinsaurralde/go-dotnet/dotnet"
)

func main() {
    // Load the C# DLL
    dllPath := "MathForGo.dll"
    assembly, err := dotnet.LoadAssembly(dllPath)
    if err != nil {
        panic(err)
    }

    // Get the "Add" method from the assembly
    method := assembly.Type("Namespace.ClassName").Method("Add")

    // Call the method with arguments
    result, err := method.Invoke(2, 3)
    if err != nil {
        panic(err)
    }

    // Convert the return value to an int
    numResult, err := result.Int()
    if err != nil {
        panic(err)
    }

    fmt.Printf("Result: %d\n", numResult)
}
登入後複製

在此範例中,Go-Dotnet 函式庫用於載入C# DLL,檢索「Add」方法,使用參數呼叫它,並將傳回值轉換為int。

注意:這種方法與使用 syscall 載入 C/C 不同DLL。 Go-Dotnet 程式庫處理 Go 類型和 .NET 類型之間的轉換,使其成為呼叫 C# 編寫的程式碼更方便的解決方案。

以上是如何從我的 Go 應用程式呼叫 C# DLL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板