1

i,m trying to use a Golang service in flutter app with using ffi library [https://pub.dev/packages/ffi], but i have a problem to send struct from go and use in flutter ... ( i can use GetKey & SumNumber func in dart but when i used struct show me err msg " Invalid argument(s): Failed to lookup symbol 'GetPerson': error code 127 " )

In my go file , i try to build this lib with go build -buildmode=c-shared -o lib.a lib.go

package main

import "C"

//export GetKey
func GetKey() \\\*C.char {
theKey := "123-456-789"
return C.CString(theKey)
}

//export SumNumbers
func SumNumbers(a, b int) int {
return a + b
}

//export GetPerson
func GetPerson() Person {
var p1 Person
p1.name = "name1"
p1.age = 20
p1.job = "job1"
p1.salary = 100
return p1
}

type Person struct {
name   string
age    int
job    string
salary int
}

func main() {
}

and my dart code

class Person extends ffi.Struct {
  external ffi.Pointer<Utf8> name;
  external ffi.Pointer<Utf8> age;
  external ffi.Pointer<Utf8> job;
  external ffi.Pointer<Utf8> salary;
}


typedef CreatePerson = Person Function();
typedef GetInfo = ffi.Pointer<Utf8> Function(ffi.Pointer<Person>);

final createStructFn =
dylib.lookupFunction<CreatePerson, CreatePerson>('GetPerson');
Richard Heap
  • 48,344
  • 9
  • 130
  • 112
Masoud
  • 33
  • 5

0 Answers0