【发布时间】:2013-10-10 20:21:37
【问题描述】:
通常 C API 指针在 Vala 绑定中被转换为 arrays 或 out 参数:
// C
void get_user_name (char *buffer, int buffer_length);
void get_user_count (int *count_ptr);
// Vala
public static void get_user_name (uint8[] buffer);
public static void get_user_count (out int count);
我现在遇到了一个使用指针作为延迟out 参数的情况。
// C
void bind_buffer (void *buffer, int buffer_length, int *length);
int fetch (void);
每次调用fetch (),数据都会传输到buffer和length。
在 Vala 中绑定此类 API 的最佳方式是什么?
// Vala
public static void bind_buffer (uint8[] buffer, int *length);
public static int fetch ();
我觉得我不能在这里使用out int length?
此外,我还必须确保绑定的数据在整个绑定期间都可用。我怎样才能做到这一点?
【问题讨论】: