This question already has an answer here:
Is there any way to use custom C dll in golang? I have my dll written in C (goDLL.dll) and i want to use it inside go
Here is little example what i want to get:
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)
}
</div>
Is there any way to use custom C dll in golang?
The answer to your question, yes
You have to import the C that you commented in your code. In order to call the c function, you need to import "C".
import "C"
The cgo way allows you to call the function this way:
import ("C")
...
C.yourDllFunc(...)
Reference and more information about cgo
Very generic example cgo.
package cgoexample
/*
#include <stdio.h>
#include <stdlib.h>
void myprint(char* s) {
printf("%s
", s);
}
*/
import "C"
import "unsafe"
func Example() {
cs := C.CString("Hello from stdio
")
C.myprint(cs)
C.free(unsafe.Pointer(cs))
}