用golang编译生成了dll,代码如下
package main
import "C"
//export MyFunc
func MyFunc(A, B in) int {
C = A + B
return 111
}
func main() {}
但是用工具查看dll的情况,没有参数,去调用传入参数就报错,不传参数可以正常返回111,请问这个是什么问题,要怎么解决
用golang编译生成了dll,代码如下
package main
import "C"
//export MyFunc
func MyFunc(A, B in) int {
C = A + B
return 111
}
func main() {}
但是用工具查看dll的情况,没有参数,去调用传入参数就报错,不传参数可以正常返回111,请问这个是什么问题,要怎么解决
【以下回答由 GPT 生成】
问题分析: 根据提供的代码,问题可能出在以下几个方面: 1. 缺少参数声明:在Go代码中,没有声明函数的参数列表,可能导致无法从dll传递参数。 2. C函数名冲突:在Go代码中,将C变量重新赋值为A + B,可能导致与C函数名冲突,从而无法正确导出函数。
解决方案: 根据代码和问题分析,有两个方面需要解决:
以下是对应的解决方案:
package main
import "C"
//export MyFunc
func MyFunc(A, B int) int {
result := A + B
return result
}
func main() {}
解决方案解释:
这样,你重新编译生成的dll应该可以正确接收参数并返回结果了。
【相关推荐】