求救~Go 调用dll,如何传递double 型的参数?(搜寻过解决方式,math.Float64bits似乎無效?)

garyjywu · · 1260 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

**前面有搜寻过这篇文章[超级链接]https://studygolang.com/topics/11167** **但是发现传float(float32)的时候正常,但在传double(float64)时,dll那边都还是收到0.00000** **我用c++写个sample的去调用dll的话也是正常的** **下面是我的code,不知道哪里出了问题, 版本是`go1.15.2`** **`tempPara` 是要传入`syscall.Syscall`的`uintptr`,`element.ParamValue`是字串 (ex. 1.23232)** ```go tempVar, err := strconv.ParseFloat(element.ParamValue, 64) if err != nil { Log("string to double transform error: ", err) //Log(conn.RemoteAddr().String(), " connection error: ", "") return err } var tempDouble uint64 = math.Float64bits((float64)(tempVar)) tempPara = uintptr(tempDouble) ``` **C這邊也只是單純印出來而已** ```c++ void passDouble(double nLen) { printf("> src double: %f\n", nLen); } ``` **有哪位高手能帮忙看看吗? 谢谢** :pray:

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1260 次点击  
加入收藏 微博
14 回复  |  直到 2021-12-31 14:28:20
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传