blob: 54f6a94eaf84f3f20e7b854cc4338e68431527d8 [file] [log] [blame]
[!GOOS:windows] skip
go run .
stdout 'ws2_32.dll: not found'
go run -tags net .
stdout 'ws2_32.dll: found'
-- go.mod --
module m
go 1.21
-- utils.go --
package main
import (
"fmt"
"syscall"
"unsafe"
)
func hasModuleHandle() {
const ws2_32 = "ws2_32.dll"
getModuleHandle := syscall.MustLoadDLL("kernel32.dll").MustFindProc("GetModuleHandleW")
mod, _, _ := getModuleHandle.Call(uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(ws2_32))))
if mod != 0 {
fmt.Println(ws2_32+":", "found")
} else {
fmt.Println(ws2_32+":", "not found")
}
}
-- net.go --
//go:build net
package main
import _ "net"
func main() {
hasModuleHandle()
}
-- nonet.go --
//go:build !net
package main
func main() {
hasModuleHandle()
}