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]);