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 取消引用它,然后将其处理以确保已释放内存。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...