javascript - Protobuf 非法 Wire 类型

标签 javascript c++ protocol-buffers

protobuf.min.js:63 Uncaught Error: Illegal wire type for field Message.Field .Data_new.vert: 5 (2 expected)

当我尝试使用 protobuf 解码我的二进制文件时收到此消息。

vert.proto:

message Vertice_new{
    repeated float values = 1 [packed = true];
}
message Data_new{
    repeated Vertice_new vert = 1;
}

在 cpp 中,我只是以 x、y、z、压力、应变等形式输入大量原始数据,这些都是 float ,当我尝试在 javascript 端对其进行解码时,我得到这个奇怪的消息,在我们更改输入数据之前它工作正常,现在我不知道在哪里寻找修复。

在这里引用我的cpp代码:

Data_new data_new;
for ... loopparameter is i ;  {  
    vert->add_values(nodes[i].pos.x + diffs[i].pos.x);
    vert->add_values(nodes[i].pos.y + diffs[i].pos.y);
    vert->add_values(nodes[i].pos.z + diffs[i].pos.z);
    vert->add_values(nodes[i].directStress.x);
    vert->add_values(nodes[i].directStress.z);
    vert->add_values(nodes[i].directStrain.x);
    vert->add_values(nodes[i].directStrain.z);
}

最佳答案

所以我终于明白了!问题出在我发布的代码之外!我只设置了一个 Ostream 来写入二进制数据,但我需要实际声明,我想写入的文件是二进制的。非常感谢大家的帮助和建议。

关于javascript - Protobuf 非法 Wire 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35204572/

相关文章:

c# - 我们如何使用具有不同属性名称的 JsonSerializer.DeserializeAsyncEnumerable 从巨大的 json 反序列化为 ProtoBuf

javascript - 如何在编辑表的单元格上方添加列

javascript - 禁用上传小部件不会禁用拖放功能

c++ - 段错误后 GDB 不返回

c++ - 如何在 Linux 中使用 Google Protobufs 确保相同的输出文件 (*.o)

c++ - 如何使用 protobuf 对多个可区分的项目进行背靠背编码?

javascript - 删除数组中的特定元素

javascript - 如何在 React 中实现拖放行为

C++ LDAP 查询以定位 memberOf

C++ 二叉树构建为什么这行不通?