【发布时间】:2021-03-06 01:51:32
【问题描述】:
我现在正在学习 Dart,并且正在玩 Dart 与 C 的互操作性。我能够使用带有两个 int 参数的 C 方法。代码如下:
hello.dart
import 'dart:ffi' as ffi;
typedef sum_func = ffi.Int32 Function(ffi.Int32 a, ffi.Int32 b);
typedef Sum = int Function(int a, int b);
...
final dylib = ffi.DynamicLibrary.open(path);
final sumPointer = dylib.lookup<ffi.NativeFunction<sum_func>>('sum');
final sum = sumPointer.asFunction<Sum>();
print('3 + 5 = ${sum(3, 5)}');
hello.c
int sum(int a, int b){
return a + b;
}
hello.h
int add(int x, int y)
hello.def
LIBRARY hello
EXPORTS
sum
这一切都很好,但我也想要一个max C 方法,它接受一个 int 数组作为输入并返回最大的数字。我怎样才能做到这一点?我已经在 C 中实现了所有必需的代码,但我不确定如何将它与 Dart“链接”。谁能帮帮我?
【问题讨论】:
标签: c dart interop ffi dart-ffi