fromFunction<T extends Function> 静态方法

Pointer<NativeFunction<T>> fromFunction<T extends Function>(
  1. @DartRepresentationOf('T') Function f, [
  2. 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]);