Kotlin/Native 如何创建 CPointers 数组?

问题描述

我是 Kotlin/Native 的新手!我想创建一个 CPointers 数组来传递它,但很难创建一个

在 C/C++ 中 void* a[] = {test} 就足够了。但我不能在 K/N 中做同样的事情。

我试过val a: CValuesRef<out copaquePointerVar> = cValuesOf(test)

但它导致以下错误

尝试查看文档并在网上找到它,但没有一个回答正确。

感谢任何帮助!

解决方法

所以我基本上使用 StableRef

on_exit(staticCFunction { _,argsPtr ->
    val argsStableRef = argsPtr!!.asStableRef<List<COpaquePointer>>()
    val args = argsStableRef.get()

    // Cleanup code

    argsStableRef.dispose()
},StableRef.create(listOf(/* All the pointers */)).asCPointer())

基本上将 List<COpaquePointer> 转换为 StableRef 并从中提取指针,然后在需要时通过 asStableRef 取消引用它,然后将其处理以确保已释放内存。