xiec2021 2023-11-27 15:27 采纳率: 0%
浏览 5

go编译生成的dll没有参数

用golang编译生成了dll,代码如下

package main
import "C"
//export MyFunc
func MyFunc(A, B in) int {
        C = A + B
    return 111
}
func main() {}

但是用工具查看dll的情况,没有参数,去调用传入参数就报错,不传参数可以正常返回111,请问这个是什么问题,要怎么解决

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-27 18:21
    关注

    【以下回答由 GPT 生成】

    问题分析: 根据提供的代码,问题可能出在以下几个方面: 1. 缺少参数声明:在Go代码中,没有声明函数的参数列表,可能导致无法从dll传递参数。 2. C函数名冲突:在Go代码中,将C变量重新赋值为A + B,可能导致与C函数名冲突,从而无法正确导出函数。

    解决方案: 根据代码和问题分析,有两个方面需要解决:

    1. 为dll函数声明参数。
    2. 解决C函数名冲突。

    以下是对应的解决方案:

    package main
    
    import "C"
    
    //export MyFunc
    func MyFunc(A, B int) int {
        result := A + B
        return result
    }
    
    func main() {}
    

    解决方案解释:

    1. 为函数MyFunc声明了两个int类型的参数A和B,在函数体内将它们相加并保存在result变量中,然后返回result。
    2. 修改了C的声明,将其更改为result,以避免与C函数名冲突。

    这样,你重新编译生成的dll应该可以正确接收参数并返回结果了。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月27日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境