Go を使用した DLL 関数へのアクセス: DllImport の代替手段
C# で DllImport を使用することに慣れている場合は、次のことを疑問に思うかもしれません。 Go には DLL から関数をインポートするための同等の手法があります。 Go には直接 DllImport に相当するものはありませんが、使用できるアプローチがいくつかあります。
cgo Method
このアプローチにより、Go から直接 DLL 関数を呼び出すことができます。コード。以下は簡略化された例です。
import ("C") func main() { C.SomeDllFunc(...) // Call the DLL function }
syscall メソッド
syscall パッケージは、DLL 関数にアクセスする手段も提供します。以下は、kernel32.dll ライブラリの GetModuleHandle 関数を使用する例です。
import ( "syscall" "unsafe" ) // ... kernel32, _ := syscall.LoadLibrary("kernel32.dll") getModuleHandle, _ := syscall.GetProcAddress(kernel32, "GetModuleHandleW") func GetModuleHandle() (handle uintptr) { // ... return }
サードパーティ パッケージ
さらに、github などのサードパーティ パッケージもあります。 com/golang/go/wiki/WindowsDLLs で DLL を操作する際の支援を提供します。 Go.
結論
Go には直接 DllImport に相当するものはありませんが、cgo、syscall、およびサードパーティ パッケージのアプローチにより、内部の DLL 関数にアクセスする柔軟な方法が提供されます。 Go アプリケーション。
以上がDllImport を使用せずに Go で DLL 関数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。