1
0
mirror of https://github.com/golang/go synced 2024-11-21 22:14:41 -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:
Shenghou Ma 2012-08-29 21:44:46 +08:00
parent db3474f1bb
commit f78ead3ca4
4 changed files with 24 additions and 40 deletions

View File

@ -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
//

View File

@ -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
//

View File

@ -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

View File

@ -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")
}