mkwinsyscall Golang 官方提供将windows系统调用生成GO函数的工具。
golang.org/x/sysgolang.org/x/sys
go get -u golang.org/x/sys
使用方式如下
go run golang.org/x/sys/windows/mkwinsyscall [flags] [path ...]
这里进行快速入门详细说明请参考 mkwinsyscall 文档
系统调用API生成步骤
mkwinsyscall//sysmkwinsyscall
实例:
conversion_windows.go
//sys convertInterfaceLUIDToGUID(interfaceLUID *uint64, interfaceGUID *windows.GUID) (ret error) = iphlpapi.ConvertInterfaceLuidToGuid
规则: sys Go函数名称(Go参数列表) 返还值= 动态库名称.动态库提供的函数名称
详细规则请参考: 官方GO Doc
接下来是运行工具生成封装的系统调用:
go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go conversion_windows.go
go run golang.org/x/sys/windows/mkwinsyscall-outputzsyscall_windows.gomkwinsyscall//sys