Maison >développement back-end >Golang >Golang peut-il être empaqueté dans une DLL ?
Golang peut-il être emballé dans une DLL ?
Golang peut compiler le programme dans un fichier DLL. La méthode spécifique est la suivante. suit :
1. Golang nécessite gcc lors de la compilation des dll, alors installez d'abord MinGW.
Le système Windows 64 bits doit télécharger la version 64 bits de MinGW : https://sourceforge.net/projects/mingw-w64/
2 Après le téléchargement, exécutez mingw-w64. -install.exe , terminez l'installation de MingGW.
(Apprentissage recommandé : Tutoriel de construction de sites Web)
3. Écrivez d'abord le programme golang 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. Fichier DLL : Une fois
go build -buildmode=c-shared -o exportgo.dll exportgo.go
compilé, deux fichiers sont obtenus : exportgo.dll et exportgo.h.
5. Référez-vous à la définition de la fonction dans le fichier exportgo.h et écrivez le fichier C# 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)); }
Compilez le fichier CS pour obtenir exe
csc importgo.cs
Put l'exe et la dll dans Dans le même répertoire, exécutez.
>importgo.exe Hello World! From DLL: Bye! 55
Pour plus de connaissances sur le golang, veuillez faire attention à la colonne tutoriel golang sur le site Web PHP chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!