通常 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
在这里使用?
此外,我必须确保绑定的数据在整个绑定期间都可用。我怎样才能做到这一点?