Kotlin/Native 如何创建 CPointer 数组?
Kotlin/Native how to create Array of CPointers?
我是 Kotlin/Native 的新手!我想创建一个 CPointer 数组来传递它,但是很难创建一个。
在C/C++中void* a[] = {test}
就够了。但我无法在 K/N.
中做同样的事情
我试过了val a: CValuesRef<out COpaquePointerVar> = cValuesOf(test)
但它会导致以下错误:
尝试查看文档并在网上找到它,但其中 none 回答正确。
感谢任何帮助!!
所以我基本上用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
取消引用,然后处理它以确保内存已被释放。
我是 Kotlin/Native 的新手!我想创建一个 CPointer 数组来传递它,但是很难创建一个。
在C/C++中void* a[] = {test}
就够了。但我无法在 K/N.
我试过了val a: CValuesRef<out COpaquePointerVar> = cValuesOf(test)
但它会导致以下错误:
尝试查看文档并在网上找到它,但其中 none 回答正确。
感谢任何帮助!!
所以我基本上用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
取消引用,然后处理它以确保内存已被释放。