在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
参数整数没有问题,但是如果是字符串,要注意几个细节。 记录如下: 1.Delphi定义函数的时候,字符串参数需要使用PChar类型 2.Go传递参数的时候要将字符串转成UTF16的指针,接收的时候采用uint16的切片。 1 dll := syscall.MustLoadDLL("Encryptdll.dll") 2 defer syscall.FreeLibrary(dll.Handle) 3 f1 := dll.MustFindProc("test06") 4 fmt.Println("f1>>>>", f1) 5 6 p1, _ := syscall.UTF16PtrFromString("sql") 7 p2 := make([]uint16, 100) // pass word limited length! syscall.MAX_PATH 8 9 r1, r2, err := f1.Call(uintptr(unsafe.Pointer(p1)), uintptr(unsafe.Pointer(&p2))) 10 if err != nil { 11 fmt.Println(r1, r2, p1, p2, err.Error(), syscall.UTF16ToString(p2)) 12 }
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论