fromFunction<T extends Function> 静态方法
- @DartRepresentationOf('T') Function f,
- [Object? exceptionalReturn]
将 Dart 函数转换为 C 函数指针,并自动打包参数和返回值
如果在调用 f()
时抛出异常,本地函数将返回 exceptionalReturn
,它必须可赋值给 f
的返回类型。
返回的函数地址只能在当前 isolate 的 mutator(主)线程上调用。如果在任何其他线程上调用,它将导致进程终止。使用 NativeCallable.listener 创建可以在任何线程上调用的回调。
返回的指针将在当前 isolate 的生存期内保持活动状态。在创建它的 isolate 终止后,从本地代码调用它将导致未定义的行为。
Pointer.fromFunction 只接受静态或顶级函数。使用 NativeCallable.isolateLocal 从任何 Dart 函数或闭包创建回调。
实现
external static Pointer<NativeFunction<T>> fromFunction<T extends Function>(
@DartRepresentationOf('T') Function f,
[Object? exceptionalReturn]);