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

garyjywu · 2021-11-22 09:30:56 · 1423 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-11-22 09:30:56 的主题,其中的信息可能已经有所发展或是发生改变。

前面有搜寻过这篇文章[超级链接]https://studygolang.com/topics/11167

但是发现传float(float32)的时候正常,但在传double(float64)时,dll那边都还是收到0.00000

我用c++写个sample的去调用dll的话也是正常的

下面是我的code,不知道哪里出了问题, 版本是go1.15.2

tempPara 是要传入syscall.Syscalluintptrelement.ParamValue是字串 (ex. 1.23232)

            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這邊也只是單純印出來而已

void passDouble(double nLen)
{
    printf("> src double: %f\n", nLen);
}

有哪位高手能帮忙看看吗? 谢谢 :pray:


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

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

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