FFI nedir?
- Flutter kursu
- Uzman seviye
- Ders 21/39
- 4 dk
dart:ffi ile C kütüphanelerini çağırmayı öğrenirsin.
FFI nedir?
dart:ffi, Dart kodundan C kütüphanelerini çağırmanı sağlar. C ile yazılmış fonksiyonları Dart'a bağlayarak interop sağlar; bridge kodu olmadan doğrudan çağrı yapılır.
import 'dart:ffi';
// C'de: int topla(int a, int b);
typedef NativeTopla = Int32 Function(Int32 a, Int32 b);
typedef DartTopla = int Function(int a, int b);NativeFunction ve typedef
C fonksiyon imzasını Dart tarafında iki typedef ile tanımlarsın: biri NativeFunction için C tarafı (Int32, Pointer), diğeri Dart tarafı (int). Bu iki tip lookupFunction tarafından köprülenir.
Uygulama FFI typedef'leri tanımla
NativeTopla = Int32 Function(Int32 a, Int32 b) ve DartTopla = int Function(int a, int b) typedef'lerini tanımla. main'de 'ffi hazir' yazdır.
Başlangıç kodu
import 'dart:ffi';
// NativeTopla typedef'i tanımla (Int32 dönüşlü Function)
// DartTopla typedef'i tanımla (int dönüşlü Function)
void main() {
// 'ffi hazir' yazdır
}Örnek çözüm
import 'dart:ffi';
typedef NativeTopla = Int32 Function(Int32 a, Int32 b);
typedef DartTopla = int Function(int a, int b);
void main() {
print('ffi hazir');
}Beklenen çıktı
ffi hazir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 dart:ffi ne sağlar?
- Veritabanı açmayı
- Dart'tan C kütüphanelerini çağırmayı Doğru cevap
- HTTP istekleri yapmayı
- Widget çizmeyi
Açıklama: dart:ffi, C fonksiyonlarını Dart'a bağlayarak doğrudan çağrı yapmayı sağlar; HTTP, widget veya veritabanı ffi'nin işi değildir.
2 dart:ffi'yi içe aktar
import 'dart:____';
import 'dart:ffi';
Açıklama: dart:ffi paketi C interop için kullanılır; dart:io dosya/socket, dart:async Future/Stream, dart:core ise temel tipler içindir.
3 FFI eşleşmeleri
| Kavram | Anlamı |
|---|---|
dart:ffi |
C interop kütüphanesi |
C |
Sistem programlama dili |
interop |
Diller arası köprü |
NativeFunction |
C tarafı imzası |