我正在尝试编写一个用于MessagePack的Vapi文件,并且有几个问题,第一个问题是,由于其中一个参数的引用类型,结果msgpack_object_print是不正确的。头文件期望
void msgpack_object_print(FILE* out, msgpack_object o);我的Vapi文件包含
[CCode (instance_pos = 1.1)]
public void print (Posix.FILE out);生成C输出。
msgpack_object_print (_tmp13_, &obj);其中obj是msgpack_object *类型。这会产生错误。
examples/simple.c:173:34: error: incompatible type for argument 2 of ‘msgpack_object_print’如果我从生成的C中删除&,那么它就消失了,所以我想知道我的Vapi应该包含哪些内容才能得到正确的输出?
发布于 2016-06-29 20:49:32
您可以指定您的msgpack_object类为[SimpleType],并且它将通过值而不是引用进行复制。
发布于 2016-06-30 13:16:37
我已经为MessagePack编写了一个部分VAPI,如果您想通过使用和测试它来进行贡献的话。
https://github.com/valum-framework/vala-extra-vapis/blob/msgpack/msgpack.vapi
如前所述,您需要使用类上的[SimpleType]注释来传递类型的值。
编辑:只是在绑定中添加,将它们保存在纳梅库/瓦拉-额外-蒸汽存储库中是件好事。
https://stackoverflow.com/questions/38108496
复制相似问题