30 lines
543 B
Go
30 lines
543 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/ebitengine/purego"
|
|
)
|
|
|
|
func main() {
|
|
libPath := "target/debug/librust_ffi_from_go.dylib"
|
|
|
|
arcjetlib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
|
|
|
|
if err != nil {
|
|
// Handle error
|
|
panic("load dylib error")
|
|
}
|
|
|
|
defer purego.Dlclose(arcjetlib)
|
|
|
|
// Register the function
|
|
var launch func(string) string
|
|
purego.RegisterLibFunc(&launch, arcjetlib, "arcjet_launch")
|
|
|
|
result := launch("hatter")
|
|
|
|
fmt.Println("result: ", result)
|
|
}
|
|
|