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