cinterop dengan Pustaka C
Ikat dependensi C agar dapat digunakan dalam kode bersama.
cinterop dengan Pustaka C adalah pelajaran Kotlin Multiplatform Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Multiplatform Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Multiplatform Academy mencakup 4 pelajaran total.
Mengakses C
Terkadang kode yang Anda perlukan adalah pustaka C biasa. Kotlin/Native dapat memanggilnya secara langsung melalui alat bernama cinterop. 🔌
Hasil dari cinterop
cinterop membaca header C dan menghasilkan pengikat Kotlin. Setelah itu, fungsi dan tipe C tampak seperti deklarasi Kotlin biasa yang dapat Anda panggil.
File .def
Anda menjelaskan pustaka tersebut dalam file def kecil: header mana yang harus dibaca dan pustaka mana yang harus ditautkan. Inilah resep yang diikuti cinterop.
headers = mylib.h
package = mylibIntegrasikan ke Gradle
Di dalam blok kotlin, Anda mendaftarkan entri cinterop untuk target Anda. Gradle kemudian menjalankan alat tersebut dan menambahkan pengikat yang dihasilkan ke dalam kompilasi.
cinterops.create("mylib")Memanggil Fungsi C
Setelah dihasilkan, fungsi C hanyalah fungsi Kotlin. Impor fungsi tersebut dari paket def Anda dan panggil seperti fungsi bersama lainnya.
import mylib.compute
val r = compute(21)Penunjuk C Menjadi CPointer
Penunjuk C mentah dipetakan ke CPointer Kotlin. Penunjuk ini memiliki tipe, sehingga kompiler mengetahui apa yang ditunjuknya, alih-alih hanya memberi Anda alamat kosong.
Memori yang Harus Anda Kelola
C tidak membebaskan sesuatu untuk Anda. Alokasikan di dalam blok memScoped agar Kotlin melepaskan memori native secara otomatis saat blok berakhir.
memScoped {
val buf = allocArray<ByteVar>(16)
}String Melintasi Batas
Gunakan pembantu untuk mengonversi antara string Kotlin dan C. String Kotlin menjadi buffer C dengan cstr, lalu konversikan kembali saat membaca hasilnya.
Tipe Opaque dan Struct
Struct C dipetakan ke kelas Kotlin dengan akses ke bidangnya. Tipe opaque yang tidak pernah Anda periksa hanyalah penunjuk yang langsung Anda teruskan kembali ke pustaka.
Pertahankan di Target Native
Pengikat cinterop hanya ada untuk target Kotlin/Native seperti iOS. Bungkus pemanggilan tersebut di balik expect/actual agar commonMain tetap bebas platform.
Bungkus, Lalu Sediakan
Sembunyikan penunjuk dan memScoped di balik API Kotlin yang mudah digunakan. Pemanggil mendapatkan tipe yang bersih dan tidak pernah menyentuh detail C mentah secara langsung.
Pemeriksaan Singkat
Pemeriksaan singkat tentang pengelolaan memori C dari Kotlin.
Ringkasan: cinterop
Anda telah melihat bahwa file def bersama Gradle menghasilkan pengikat Kotlin untuk pustaka C, penunjuk dipetakan ke CPointer, dan memScoped mengelola memori native. 🎉
Pertanyaan yang Sering Diajukan
Apakah pelajaran “cinterop dengan Pustaka C” gratis?
Ya — teks lengkap “cinterop dengan Pustaka C” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Multiplatform Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Multiplatform Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “cinterop dengan Pustaka C”?
Ikat dependensi C agar dapat digunakan dalam kode bersama. Kamu berlatih Kotlin Multiplatform Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Kotlin Multiplatform Academy?
Tidak diperlukan pengalaman sebelumnya. Kotlin Multiplatform Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “cinterop dengan Pustaka C” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Multiplatform Academy ini?
Ya. Setiap pelajaran Kotlin Multiplatform Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menggunakan Framework Apple dari Kotlin
- Memori & ARC dalam Kotlin/Native
- cinterop dengan Pustaka C
- Bungkus SDK Native dengan Rapi