【求助】go调用c++的Dll,dll里面需要的float参数,go应该怎样传值进去呢?

weixin_38050362 2019-09-20 10:45:40
dll是c++编写的,里面的参数是float xx = 13.12f,就是float,system.single类型,但是用go直接调用dll通过uintptr(fPrice)传值过去不对啊,其中fPrice float32类型。哪位高手给指点下,到底怎么传值进去才对呢。意思就是go如何传值到dll里面让里面接收到的就是system.single类型呢,现在dll我改不了,所以如何让go传进去的是正确的呢?
...全文
113 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38064374 2019-09-20
  • 打赏
  • 举报
回复
发了帖子就自己摸索出了解决方案,也好,发出来,大家遇到了可以就帮得上了。解决方案如下: //uintptr是golang的内置类型,是能存储指针的整型 //因此float32必须先转换成指针类型整形 func Float32bits(f float32) uint32 { // fmt.Println(reflect.TypeOf(unsafe.Pointer(&f))) //unsafe.Pointer // fmt.Println(reflect.TypeOf((*uint32)(unsafe.Pointer(&f))))//*uint32 return *(*uint32)(unsafe.Pointer(&f)) }

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧