Özet - FFI
- Dart kursu
- Uzman
- Ders 18/47
- 5 dk
DynamicLibrary, lookupFunction ve Pointer'ı birleştirerek bir native sarmalayıcı yazarsın.
Özet: FFI
Bu grupta dart:ffi'nin temel parçalarını gördük: dart:ffi C interop kütüphanesidir, DynamicLibrary C kütüphanesi yükler, lookupFunction native fonksiyonları bağlar.
Struct C struct'larını temsil eder, Pointer bellek adreslerini yönetir. dart:ffi native platformlarda çalışır, web'de desteklenmez. Bu özette tüm bu parçaları birleştiren bir native sarmalayıcı yazacaksın.
Uygulama Özet: NativeWrapper sınıfı
Bir NativeWrapper sınıfı tanımla: final String library; final String symbol; NativeWrapper(this.library, this.symbol); alan ve kurucu. String describe() => '$library :: $symbol'; metodu. main içinde final w = NativeWrapper('libmylib.so', 'add'); yarat; print(w.describe()); ile yazdır.
Başlangıç kodu
void main() {
// NativeWrapper sınıfını tanımla (library, symbol; describe)
// bir NativeWrapper yarat; describe() yazdır
}Örnek çözüm
class NativeWrapper {
final String library;
final String symbol;
NativeWrapper(this.library, this.symbol);
String describe() => '$library :: $symbol';
}
void main() {
final w = NativeWrapper('libmylib.so', 'add');
print(w.describe());
}Beklenen çıktı
libmylib.so :: add
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 DynamicLibrary ne için kullanılır?
- UI render için
- Çöp toplama için
- C kütüphanesi yüklemek için Doğru cevap
- Paket indirme için
Açıklama: DynamicLibrary C kütüphanelerini yükler.
2 FFI parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
dart:ffi |
C interop |
DynamicLibrary |
Kütüphane yükleyici |
lookupFunction |
Sembol arama |
Pointer |
Bellek adresi |
3 Native fonksiyon sembolü
final symbol = '____';
print(symbol);
final symbol = 'add';
print(symbol);
Açıklama: 'add' yaygın bir C fonksiyon sembolüdür.