Example
This commit is contained in:
47
example.go
Normal file
47
example.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package main
|
||||
|
||||
// compile: CGO_LDFLAGS_ALLOW=".*" CGO_ENABLED=1 go build -buildmode=c-shared
|
||||
|
||||
/*
|
||||
#cgo LDFLAGS: "-Wl,--version-script=${SRCDIR}/script.exp"
|
||||
|
||||
int gmod13_open(void* L);
|
||||
int gmod13_close(void* L);
|
||||
|
||||
int glib_test(void* L);
|
||||
*/
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"unsafe"
|
||||
|
||||
"code.gurenya.net/gmod/glib"
|
||||
)
|
||||
|
||||
type State = unsafe.Pointer
|
||||
|
||||
//export glib_test
|
||||
func glib_test(L State) C.int {
|
||||
fmt.Println("Hello from glib_test function!")
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
//export gmod13_open
|
||||
func gmod13_open(L State) C.int {
|
||||
fmt.Println("Hello from binary module!")
|
||||
|
||||
glib.PushFunc(L, C.glib_test)
|
||||
glib.SetGlobal(L, "glib_test")
|
||||
return 0
|
||||
}
|
||||
|
||||
//export gmod13_close
|
||||
func gmod13_close(L State) C.int {
|
||||
fmt.Println("Goodbye from binary module!")
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func main() {}
|
||||
Reference in New Issue
Block a user