Maison >développement back-end >Golang >Comment puis-je importer une fonction DLL C dans Go ?
Importer une fonction DLL écrite en C avec Go
Pour importer une fonction depuis une DLL écrite en C avec Go, plusieurs approches sont disponibles .
Option 1 : cgo
Le package cgo permet l’invocation directe de fonctions C à partir du code Go. Pour ce faire :
import "C" C.SomeDllFunc(...)
Option 2 : syscall
Le package syscall peut être utilisé pour charger et appeler des fonctions à partir de DLL. Voici un exemple :
import ( "fmt" "syscall" "unsafe" ) kernel32, _ := syscall.LoadLibrary("kernel32.dll") getModuleHandle, _ := syscall.GetProcAddress(kernel32, "GetModuleHandleW") func GetModuleHandle() uintptr { ret, _, _ := syscall.Syscall(uintptr(getModuleHandle), 0, 0, 0, 0) return ret }
Option 3 : Utilisation d'une bibliothèque d'assistance
GitHub héberge une page qui simplifie le processus d'interface avec les DLL de Go : https:/ /github.com/golang/go/wiki/WindowsDLLs.
En résumé, il existe trois méthodes principales pour importer une fonction DLL écrite en C à l'aide des bibliothèques Go : cgo, syscall et helper. Chaque approche a ses avantages et ses inconvénients, permettant aux développeurs de choisir la meilleure solution pour leurs besoins spécifiques.
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!