76 字
1 分钟
Kotlin cinterop的简单记录
映射类型
| C类型 | Kotlin映射类型 |
|---|---|
| char | ByteVar |
| short | ShortVar |
| int | IntVar |
| long | LongVar |
| float | FloatVar |
| double | DoubleVar |
| pointer | CPointer<*> |
| void* | CPointer |
ByteArray的表示
在Cinterop中表示一个ByteArray需要手动分配内存
fun main() {
val byteArray = byteArrayOf(0x01, 0x02, 0x03, 0x04)
memScoped {
val cPointer = allocArray<ByteVar>(byteArray.size)
byteArray.forEachIndexed { index, byte ->
cPointer[index] = byte
}
println(cPointer)
}
}这里将ByteArray转换成了C的
unsgined char*类型
WIP /(ㄒoㄒ)/~~