Mengimport Fungsi DLL Ditulis dalam C Menggunakan Go
Untuk mengimport fungsi daripada DLL yang ditulis dalam C menggunakan Go, beberapa pendekatan tersedia .
Pilihan 1: cgo
The Pakej cgo membolehkan penggunaan langsung fungsi C daripada kod Go. Untuk berbuat demikian:
import "C" C.SomeDllFunc(...)
Pilihan 2: syscall
Pakej syscall boleh digunakan untuk memuatkan dan memanggil fungsi daripada DLL. Berikut ialah contoh:
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 }
Pilihan 3: Menggunakan Pustaka Pembantu
GitHub mengehos halaman yang memudahkan proses antara muka dengan DLL daripada Go: https:/ /github.com/golang/go/wiki/WindowsDLLs.
Ringkasnya, terdapat tiga kaedah utama untuk mengimport fungsi DLL yang ditulis dalam C menggunakan Go: cgo, syscall, dan perpustakaan pembantu. Setiap pendekatan mempunyai faedah dan kelemahannya, membolehkan pembangun memilih yang paling sesuai untuk keperluan khusus mereka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengimport Fungsi C DLL ke dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!