有什么方法可以在golang中使用自定义C dll? 我有用C编写的dll(goDLL.dll) 我想在里面使用它
这里是我想要得到的例子:
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)
}
答案 0 :(得分:0)
有什么方法可以在golang中使用自定义C dll?
是的,您的问题的答案是
您必须导入在代码中注释的C。为了调用c函数,您需要导入“ C”。
import "C"
cgo方法允许您以这种方式调用函数:
import ("C")
...
C.yourDllFunc(...)
参考以及有关cgo
的更多信息非常普通的示例cgo。
package cgoexample
/*
#include <stdio.h>
#include <stdlib.h>
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))
}