dart:ffi library

Foreign Function Interface for interoperability with the C programming language.

For further details, please see: https://dart.cn/server/c-interop.

Classes

Abi
An application binary interface (ABI).
AbiSpecificInteger
The supertype of all Abi-specific integer types.
AbiSpecificIntegerMapping
Mapping for a subtype of AbiSpecificInteger.
Allocator
Manages memory on the native heap.
Array<T extends NativeType>
A fixed-sized array of Ts.
Bool
Represents a native bool in C.
Char
The C char type.
Dart_CObject
Opaque, not exposing it's members.
DartRepresentationOf
DefaultAsset
Annotation specifying the default asset ID for the current library.
Double
Represents a native 64 bit double in C.
DynamicLibrary
A dynamically loaded native library.
Finalizable
Marker interface for objects which should not be finalized too soon.
Float
Represents a native 32 bit float in C.
Handle
Represents Dart_Handle from dart_api.h in C.
Int
The C int type.
Int16
Represents a native signed 16 bit integer in C.
Int32
Represents a native signed 32 bit integer in C.
Int64
Represents a native signed 64 bit integer in C.
Int8
Represents a native signed 8 bit integer in C.
IntPtr
The C intptr_t type.
Long
The C long int, aka. long, type.
LongLong
The C long long type.
Native<T>
Annotation binding an external declaration to its native implementation.
NativeApi
Utilities for accessing the Dart VM API from Dart code or from C code via dart_api_dl.h.
NativeCallable<T extends Function>
A native callable which listens for calls to a native function.
NativeFinalizer
A native finalizer which can be attached to Dart objects.
NativeFunction<T extends Function>
Represents a function type in C.
NativeType
NativeType's subtypes represent a native type in C.
Opaque
Opaque's subtypes represent opaque types in C.
Packed
Annotation to specify on Struct subtypes to indicate that its members need to be packed.
Pointer<T extends NativeType>
Represents a pointer into the native C memory. Cannot be extended.
Short
The C short type.
SignedChar
The C signed char type.
Size
The C size_t type.
SizedNativeType
A NativeType with a known size.
Struct
The supertype of all FFI struct types.
Uint16
Represents a native unsigned 16 bit integer in C.
Uint32
Represents a native unsigned 32 bit integer in C.
Uint64
Represents a native unsigned 64 bit integer in C.
Uint8
Represents a native unsigned 8 bit integer in C.
UintPtr
The C uintptr_t type.
Union
The supertype of all FFI union types.
UnsignedChar
The C unsigned char type.
UnsignedInt
The C unsigned int type.
UnsignedLong
The C unsigned long int, aka. unsigned long, type.
UnsignedLongLong
The C unsigned long long type.
UnsignedShort
The C unsigned short type.
VarArgs<T extends Record>
The types of variadic arguments passed in C.
Void
Represents a void type in C.
WChar
The C wchar_t type.

Extensions

AbiSpecificIntegerArray on Array<AbiSpecificInteger>
Bounds checking indexing methods on Arrays of AbiSpecificInteger.
AbiSpecificIntegerPointer on Pointer<T>
Extension on Pointer specialized for the type argument AbiSpecificInteger.
AllocatorAlloc on Allocator
Extension on Allocator to provide allocation with NativeType.
ArrayArray on Array<Array<T>>
Bounds checking indexing methods on Arrays of Array.
BoolArray on Array<Bool>
Bounds checking indexing methods on Arrays of Bool.
BoolPointer on Pointer<Bool>
Extension on Pointer specialized for the type argument Bool.
DoubleArray on Array<Double>
Bounds checking indexing methods on Arrays of Double.
DoublePointer on Pointer<Double>
Extension on Pointer specialized for the type argument Double.
DynamicLibraryExtension on DynamicLibrary
Method which must not be invoked dynamically.
FloatArray on Array<Float>
Bounds checking indexing methods on Arrays of Float.
FloatPointer on Pointer<Float>
Extension on Pointer specialized for the type argument Float.
Int16Array on Array<Int16>
Bounds checking indexing methods on Arrays of Int16.
Int16Pointer on Pointer<Int16>
Extension on Pointer specialized for the type argument Int16.
Int32Array on Array<Int32>
Bounds checking indexing methods on Arrays of Int32.
Int32Pointer on Pointer<Int32>
Extension on Pointer specialized for the type argument Int32.
Int64Array on Array<Int64>
Bounds checking indexing methods on Arrays of Int64.
Int64Pointer on Pointer<Int64>
Extension on Pointer specialized for the type argument Int64.
Int8Array on Array<Int8>
Bounds checking indexing methods on Arrays of Int8.
Int8Pointer on Pointer<Int8>
Extension on Pointer specialized for the type argument Int8.
NativeFunctionPointer on Pointer<NativeFunction<NF>>
Extension on Pointer specialized for the type argument NativeFunction.
NativePort on SendPort
Extension to retrieve the native Dart_Port from a SendPort.
PointerArray on Array<Pointer<T>>
Bounds checking indexing methods on Arrays of Pointer.
PointerPointer on Pointer<Pointer<T>>
Extension on Pointer specialized for the type argument Pointer.
StructArray on Array<T>
Bounds checking indexing methods on Arrays of Struct.
StructPointer on Pointer<T>
Extension on Pointer specialized for the type argument Struct.
Uint16Array on Array<Uint16>
Bounds checking indexing methods on Arrays of Uint16.
Uint16Pointer on Pointer<Uint16>
Extension on Pointer specialized for the type argument Uint16.
Uint32Array on Array<Uint32>
Bounds checking indexing methods on Arrays of Uint32.
Uint32Pointer on Pointer<Uint32>
Extension on Pointer specialized for the type argument Uint32.
Uint64Array on Array<Uint64>
Bounds checking indexing methods on Arrays of Uint64.
Uint64Pointer on Pointer<Uint64>
Extension on Pointer specialized for the type argument Uint64.
Uint8Array on Array<Uint8>
Bounds checking indexing methods on Arrays of Uint8.
Uint8Pointer on Pointer<Uint8>
Extension on Pointer specialized for the type argument Uint8.
UnionArray on Array<T>
Bounds checking indexing methods on Arrays of Union.
UnionPointer on Pointer<T>
Extension on Pointer specialized for the type argument Union.

Properties

nullptr Pointer<Never>
Represents a pointer into the native C memory corresponding to 'NULL', e.g. a pointer with address 0.
final

Functions

sizeOf<T extends SizedNativeType>() int
Number of bytes used by native type T.

Typedefs

Dart_NativeMessageHandler = Void Function(Int64, Pointer<Dart_CObject>)
NativeFinalizerFunction = NativeFunction<Void Function(Pointer<Void> token)>
The native function type for NativeFinalizers.