初级会员
  • 第 71651 位会员
  • twgh
  • twgh
  • twgh@vip.qq.com
  • 2022-01-18 06:29:37
  • Offline
  • 34 19

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • #### 都有人用go编译dll给易语言、c++用了, 有人封装了gin给易语言用, 可看出go编译的dll应该没啥问题, 但是要注意写法。 [https://bbs.125.la/forum.php?mod=viewthread&tid=14663404&highlight=go%E8%AF%AD%E8%A8%80](https://bbs.125.la/forum.php?mod=viewthread&tid=14663404&highlight=go%E8%AF%AD%E8%A8%80) #### go调用dll也是有很多注意的点, 我调用过c++的dll,windows api, go语言编译的dll倒是没调用过,我觉得有问题也是出在数据转换、传递上。
  • 把key的长度加到足够长, 替换后使用他的时候删除尾部无用的文本
  • ``` go mod download github.com/gorilla/mux@latest ```
  • 我有一个调用C++编译的dll的界面库项目, 会接收dll函数传过来的各种类型的数据, 也要传各种值或指针进dll函数. 还有调用windows系统API也是涉及很多数据类型与go进行交互: [https://github.com/twgh/xcgui](https://github.com/twgh/xcgui) ----- 关于你的问题, 应该接收第二个返回值, 而不是第一个: ```go _, r2, _ := syscall.Syscall() ``` ----- 然后用下面的函数去转换r2: ```go //float32的没问题 func UintPtrToFloat32(ptr uintptr) float32 { u := uint32(ptr) return *(*float32)(unsafe.Pointer(&u)) } //float64的我没测试, 想来应该可以 func UintPtrToFloat64(ptr uintptr) float64 { u := uint64(ptr) return *(*float64)(unsafe.Pointer(&u)) } ```