目前中测试了返回字符串的内容,其它的结构体后再再测试
lib := syscall.NewLazyDLL("./lib/iTapTradeAPI_64.dll")
fmt.Println("dll:", lib.Name)
add := lib.NewProc("GetITapTradeAPIVersion")
fmt.Println("+++++++NewProc:", add, "+++++++")
ret, b, err := add.Call()
if err != nil {
errGet := err.(syscall.Errno)
if (errGet == 0) {
fmt.Println("ret:", uintptr(ret))
fmt.Println("b:", uintptr(b))
p := (*byte)(unsafe.Pointer(ret))
data := make([]byte, 0)
for *p != 0 {
data = append(data, *p)
ret += unsafe.Sizeof(byte(0))
p = (*byte)(unsafe.Pointer(ret))
}
ss := string(data)
println(ss)
} else {
fmt.Println("错误:", err.Error())
}
}