前面有搜寻过这篇文章[超级链接]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)
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);
}
有哪位高手能帮忙看看吗? 谢谢
有疑问加站长微信联系(非本文作者)
