Go を使用して C で書かれた DLL 関数をインポートする方法:
Windows システムで Go を使用している開発者は、 C で書かれた DLL とインターフェースする必要があります。これを実現するためのいくつかの方法を調べてみましょう。これ。
1. cgo メソッド:
cgo パッケージは、C コードを Go プログラムにシームレスに統合します。 Go 構文を使用して DLL 関数を直接呼び出すことができます。例:
import "C" ... C.SomeDllFunc(...)
2. syscall の使用:
syscall パッケージは、DLL のロードおよび対話機能を含む、システム コール機能への直接アクセスを提供します。
import ( "syscall" "unsafe" ) ... kernel32, _ := syscall.LoadLibrary("kernel32.dll") getModuleHandle, _ := syscall.GetProcAddress(kernel32, "GetModuleHandleW")
func GetModuleHandle() uintptr { nargs := uintptr(0) ret, _, callErr := syscall.Syscall(uintptr(getModuleHandle), nargs, 0, 0, 0) if callErr != 0 { abort("Call GetModuleHandle", callErr) } return ret }
3.追加リソース:
これらのメソッドを使用すると、Go プログラム内で DLL と効果的に統合でき、広範囲にわたるアクセスを許可できます。 C で書かれた機能の一部。
以上がC DLL 関数を Go プログラムにインポートして使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。