登录
首页 >  Golang >  Go问答

使用C库文件的方法

来源:stackoverflow

时间:2024-03-08 20:51:25 294浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《使用C库文件的方法》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

有没有办法在golang中使用自定义c dll? 我的 dll 用 c 编写(godll.dll) 我想在 go 中使用它

这是我想要得到的小例子:

package main

    //#import "goDLL.dll"
    //extern void add(int * A, int * B, int * C)
    //{
    //      *C = *A + *B;
    //}
    //
    // import "C"
     import (
     "fmt"
     ) 

func main() {

    var AA *C.int = new(C.int)
    var BB *C.int = new(C.int)
    var CC *C.int = new(C.int)

    *AA = 5
    *BB = 4

    C.add(AA, BB, CC)
    fmt.Println(*CC)

}

解决方案


有没有办法在golang中使用自定义c dll?

你的问题的答案是,是的

您必须导入您在代码中注释的 c。为了调用c函数,您需要导入“c”。

import "c"

cgo方式允许你这样调用函数:

import ("c")
...
c.yourdllfunc(...)

有关 cgo 的参考和更多信息

非常通用的示例 cgo

package cgoexample
/*
#include 
#include 

void myprint(char* s) {
    printf("%s\n", s);
}
*/
import "C"

import "unsafe"

func Example() {
    cs := C.CString("Hello from stdio\n")
    C.myprint(cs)
    C.free(unsafe.Pointer(cs))
}

本篇关于《使用C库文件的方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>