如何使用 FFI 映射 Dart 字符串
How to map Dart String with FFI
我将 Dart 类型设置为:
typedef dart_func = String Function(String x);
想用 Dart FFi 映射它,但他们既找不到 String,也找不到 Utf8,我试过了
typedef ffi_func = ffi.Pointer<Utf8> Function(ffi.Pointer<Utf8> x);
但它失败了,并给出 Utf8
不是类型
您还需要包含 ffi 包:https://pub.dev/packages/ffi
简单的用法是:
import 'package:ffi/ffi.dart';
final foo = 'foo';
final fooNative = foo.toNativeUtf8(); // a Pointer<Utf8>
// given a Pointer<Utf8>, get a Dart string
final fooDart = fooNative.toDartString();
// don't forget to free the pointer created by toNativeUtf8
malloc.free(fooNative);
示例代码在这里:https://github.com/dart-lang/samples/blob/master/ffi/structs/structs.dart
我将 Dart 类型设置为:
typedef dart_func = String Function(String x);
想用 Dart FFi 映射它,但他们既找不到 String,也找不到 Utf8,我试过了
typedef ffi_func = ffi.Pointer<Utf8> Function(ffi.Pointer<Utf8> x);
但它失败了,并给出 Utf8
不是类型
您还需要包含 ffi 包:https://pub.dev/packages/ffi
简单的用法是:
import 'package:ffi/ffi.dart';
final foo = 'foo';
final fooNative = foo.toNativeUtf8(); // a Pointer<Utf8>
// given a Pointer<Utf8>, get a Dart string
final fooDart = fooNative.toDartString();
// don't forget to free the pointer created by toNativeUtf8
malloc.free(fooNative);
示例代码在这里:https://github.com/dart-lang/samples/blob/master/ffi/structs/structs.dart