Heim > Artikel > Backend-Entwicklung > Kann Golang in eine DLL gepackt werden?
Kann Golang in eine DLL gepackt werden?
Golang kann das Programm in eine DLL-Datei kompilieren. Die spezifische Methode ist wie folgt folgt:
1. Golang benötigt beim Kompilieren der DLL gcc, also installieren Sie zuerst MinGW.
Das 64-Bit-Windows-System sollte die 64-Bit-Version von MinGW herunterladen: https://sourceforge.net/projects/mingw-w64/
2 Führen Sie nach dem Herunterladen mingw-w64 aus -install.exe, schließen Sie die Installation von MingGW ab.
(Empfohlenes Lernen: Website-Aufbau-Tutorial)
3. Schreiben Sie zuerst das Golang-Programm exportgo.go:
package main import "C" import "fmt" //export PrintBye func PrintBye() { fmt.Println("From DLL: Bye!") } //export Sum func Sum(a int, b int) int { return a + b; } func main() { // Need a main function to make CGO compile package as C shared library }
4 DLL-Datei: Nachdem
go build -buildmode=c-shared -o exportgo.dll exportgo.go
kompiliert wurde, werden zwei Dateien erhalten: exportgo.dll und exportgo.h.
5. Sehen Sie sich die Funktionsdefinition in der Datei exportgo.h an und schreiben Sie die C#-Datei importgo.cs:
using System; using System.Runtime.InteropServices; namespace HelloWorld { class Hello { [DllImport("exportgo.dll", EntryPoint="PrintBye")] static extern void PrintBye(); [DllImport("exportgo.dll", EntryPoint="Sum")] static extern int Sum(int a, int b); static void Main() { Console.WriteLine("Hello World!"); PrintBye(); Console.WriteLine(Sum(33, 22)); }
Kompilieren Sie die CS-Datei, um die exe zu erhalten
csc importgo.cs
Legen Sie die EXE- und DLL-Datei im selben Verzeichnis ab und führen Sie sie aus.
>importgo.exe Hello World! From DLL: Bye! 55
Weitere Golang-Kenntnisse finden Sie in der Spalte Golang-Tutorial auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonKann Golang in eine DLL gepackt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!