【Go语言golang】Golang中调用DLL示例—Win32 API
不断的会有人问:在go中可以调用dll么?如何做?这里提供一个示例(获取当前Windows版本): 010203040506070809101112131415161718192021222324252627282930package main import ( "syscall" ) func abort(funcname string, err error) { panic(funcname + " failed: " + ()) } func print_version(v uint32) { major := byte(v) minor := uint8(v >> 8) build := uint16(v >> 16) print("windows version ", major, ".", minor, " (Build ", build, ")\n") } func main() { h, err := ("") if err != nil { abort("LoadLibrary", err) } defer (h) proc, err := (h, "GetVersion") if err != nil { abort("GetProcAddress", err) } r, _, _ := (uintptr(proc), 0, 0, 0, 0) print_version(uint32(r)) }
不断的会有人问:在go中可以调用dll么?如何做?这里提供一个示例(获取当前Windows版本): 010203040506070809101112131415161718192021222324252627282930package main import ( "syscall" ) func abort(funcname string, err error) { panic(funcname + " failed: " + ()) } func print_version(v uint32) { major := byte(v) minor := uint8(v >> 8) build := uint16(v >> 16) print("windows version ", major, ".", minor, " (Build ", build, ")\n") } func main() { h, err := ("") if err != nil { abort("LoadLibrary", err) } defer (h) proc, err := (h, "GetVersion") if err != nil { abort("GetProcAddress", err) } r, _, _ := (uintptr(proc), 0, 0, 0, 0) print_version(uint32(r)) }