[!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() }