mirror of
https://github.com/golang/go
synced 2024-11-22 03:54:39 -07:00
syscall: extract an ExampleLoadLibrary from comment
while we are at it, fix some out-of-date comments. R=golang-dev, dave, r CC=golang-dev https://golang.org/cl/6498054
This commit is contained in:
parent
db3474f1bb
commit
f78ead3ca4
@ -3,5 +3,5 @@
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//
|
||||
// System calls for 386, Windows are implemented in ../runtime/windows/syscall.goc
|
||||
// System calls for 386, Windows are implemented in ../runtime/syscall_windows.goc
|
||||
//
|
||||
|
@ -3,5 +3,5 @@
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//
|
||||
// System calls for amd64, Windows are implemented in ../runtime/windows/syscall.goc
|
||||
// System calls for amd64, Windows are implemented in ../runtime/syscall_windows.goc
|
||||
//
|
||||
|
@ -15,43 +15,6 @@ type Handle uintptr
|
||||
|
||||
const InvalidHandle = ^Handle(0)
|
||||
|
||||
/*
|
||||
|
||||
small demo to detect version of windows you are running:
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func abort(funcname string, err error) {
|
||||
panic(funcname + " failed: " + err.Error())
|
||||
}
|
||||
|
||||
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 := syscall.LoadLibrary("kernel32.dll")
|
||||
if err != nil {
|
||||
abort("LoadLibrary", err)
|
||||
}
|
||||
defer syscall.FreeLibrary(h)
|
||||
proc, err := syscall.GetProcAddress(h, "GetVersion")
|
||||
if err != nil {
|
||||
abort("GetProcAddress", err)
|
||||
}
|
||||
r, _, _ := syscall.Syscall(uintptr(proc), 0, 0, 0, 0)
|
||||
print_version(uint32(r))
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// StringToUTF16 is deprecated. Use UTF16FromString instead.
|
||||
// If s contains a NUL byte this function panics instead of
|
||||
// returning an error.
|
||||
@ -142,7 +105,7 @@ func (e Errno) Timeout() bool {
|
||||
// Converts a Go function to a function pointer conforming
|
||||
// to the stdcall calling convention. This is useful when
|
||||
// interoperating with Windows code requiring callbacks.
|
||||
// Implemented in ../runtime/windows/syscall.goc
|
||||
// Implemented in ../runtime/syscall_windows.goc
|
||||
func NewCallback(fn interface{}) uintptr
|
||||
|
||||
// windows api calls
|
||||
|
@ -49,3 +49,24 @@ func TestWin32finddata(t *testing.T) {
|
||||
t.Fatalf("memory corruption: want=%d got=%d", want, x.got)
|
||||
}
|
||||
}
|
||||
|
||||
func abort(funcname string, err error) {
|
||||
panic(funcname + " failed: " + err.Error())
|
||||
}
|
||||
|
||||
func ExampleLoadLibrary() {
|
||||
h, err := syscall.LoadLibrary("kernel32.dll")
|
||||
if err != nil {
|
||||
abort("LoadLibrary", err)
|
||||
}
|
||||
defer syscall.FreeLibrary(h)
|
||||
proc, err := syscall.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")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user