Go アプリケーションでの C# DLL の利用
Go アプリケーションから C# DLL を呼び出すと、独特の課題が生じます。 C/C DLL は syscall を使用して読み込むことができますが、C# アセンブリの形式は異なります。
Go-Dotnet ライブラリ
幸いなことに、go-dotnet ( https://github.com/matiasinsaurralde/go-dotnet) がギャップを埋めます。このライブラリを使用すると、Go アプリケーションで C# DLL を含む .NET アセンブリを読み込んで利用できるようになります。
使用例
次の例は、以下を追加する単純な C# DLL を呼び出す方法の例です。 2 つの数字:
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 中国語 Web サイトの他の関連記事を参照してください。