package main import ( "fmt" "os" "plugin" "pro2d/src/components/net" ) func main() { p, err := plugin.Open("./bin/plugin.so") if err != nil { fmt.Println("error open plugin: ", err) os.Exit(-1) } s, err := p.Lookup("IamPluginA") if err != nil { fmt.Println("error lookup IamPluginA: ", err) os.Exit(-1) } pkg1 := net.MsgPkg{ Head: &net.Head{ Length: 16, Cmd: 0, ErrCode: 0, }, } if x, ok := s.(func(net.MsgPkg)); ok { x(pkg1) } }