flutter ffi调用

flutter dart调用so库文件中的方法:
dart与so通信,首先就是加载so得到句柄,然后倒出方法,再转换成dart调用的方法,这个过程中主要的有双方类型转换

import 'dart:ffi';
typedef NativeFunctionType = Int32 Function(Int32);
typedef DartFunctionType = int Function(int);

void main() {
  // 加载动态链接库
  final DynamicLibrary lib = DynamicLibrary.open("path/to/your/library.so");

  // 查找函数
  final Pointer<NativeFunction<NativeFunctionType>> funcPtr =
      lib.lookup<NativeFunctionType>("your_function_name");

  // 将函数指针转换为 Dart 可调用的函数
  final DartFunctionType func = funcPtr.asFunction<DartFunctionType>();

  // 调用函数
  int result = func(42);
  print(result);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容