Go を使用した C で記述された DLL 関数のインポート
Go を使用して C で記述された DLL から関数をインポートするには、いくつかの方法が利用可能です.
オプション 1: cgo
cgo パッケージを使用すると、Go コードから C 関数を直接呼び出すことができます。これを行うには:
import "C" C.SomeDllFunc(...)
オプション 2: syscall
syscall パッケージを使用して、DLL から関数をロードして呼び出すことができます。以下に例を示します:
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 }
オプション 3: ヘルパー ライブラリの使用
GitHub は、Go から DLL とのインターフェイスのプロセスを簡素化するページをホストします: https:/ /github.com/golang/go/wiki/WindowsDLLs.
内要約すると、Go を使用して C で記述された DLL 関数をインポートするには、cgo、syscall、およびヘルパー ライブラリという 3 つの主な方法があります。各アプローチには利点と欠点があるため、開発者は特定のニーズに最適なものを選択できます。
以上がC DLL 関数を Go にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。