func ExampleLoadLibrary() { h, err := windows.LoadLibrary("kernel32.dll") if err != nil { abort("LoadLibrary", err) } defer windows.FreeLibrary(h) proc, err := windows.GetProcAddress(h, "GetVersion") if err != nil { abort("GetProcAddress", err) } r, _, _ := syscall.Syscall(uintptr(proc), 0, 0, 0, 0) major := byte(r) minor := uint8(r >> 8) build := uint16(r >> 16) print("windows version ", major, ".", minor, " (Build ", build, ")\n") }
// Frees the loaded dynamic-link library (DLL) module and, if necessary, // decrements its reference count. When the reference count reaches zero, the // module is unloaded from the address space of the calling process and the // handle is no longer valid. func freeLibrary(handle Handle) error { // Wrap the method so that we can stub it out and use our own Handle type. return windows.FreeLibrary(windows.Handle(handle)) }