在Crystal FFI中,如何访问C库中的类型



我正在做的任务是将对create_function接口的支持添加到Crystal的SQLite绑定中:https://github.com/crystal-lang/crystal-sqlite3/issues/61

要访问用户定义函数的参数,我需要访问sqlite3_value类型的C样式数组(即指向连续实例的指针(,如果我没有弄错的话,这需要知道类型的大小。但据我所知,没有办法将Crystal类型声明为C库中定义的类型的别名。

因为它是一个指针,所以不需要知道它的布局。对于不透明指针,这种模式在Crystal:中很常见

type Sqlite3Context = Void*
type Sqlite3Value = Void*
fun sqlite3_create_function(
[...]
xFunc : (Sqlite3Context, Int, Sqlite3Value*) ->,
[...]
)

最新更新