diff --git a/Example/App_go/go.mod b/Example/App_go/go.mod new file mode 100644 index 0000000..fc1f48c --- /dev/null +++ b/Example/App_go/go.mod @@ -0,0 +1,5 @@ +module github.com/ddxoft/master/Example/App_go + +go 1.22.1 + +require golang.org/x/sys v0.18.0 diff --git a/Example/App_go/go.sum b/Example/App_go/go.sum new file mode 100644 index 0000000..3ef669d --- /dev/null +++ b/Example/App_go/go.sum @@ -0,0 +1,2 @@ +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/Example/App_go/main.go b/Example/App_go/main.go new file mode 100644 index 0000000..e1a03ba --- /dev/null +++ b/Example/App_go/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "fmt" + "unsafe" + + "golang.org/x/sys/windows" +) + +var ( + dd = windows.NewLazyDLL("./dd.dll") + btn = dd.NewProc("DD_btn") + key = dd.NewProc("DD_key") + str = dd.NewProc("DD_str") +) + +func main() { + fmt.Println("Load DD!") + + rt, _, _ := btn.Call(0) + if rt == 1 { + fmt.Println("ok") + } else { + fmt.Println("load failed") + } + + key.Call(601, 1) // 1==down, 601=Left.Win (dd key code) + key.Call(601, 2) // 2=up + + ptr, err := windows.BytePtrFromString("123@aBc") + if err != nil { + panic(err) + } + rt, _, _ = str.Call(uintptr(unsafe.Pointer(ptr))) + if rt != 1 { + panic("input failed") + } +}