我正在尝试使用协议缓冲区将多个消息序列化到一个文件 - 遵循显示here的实现 - 但我遇到了一个问题,我无法访问FileOutputStream
类在<zero_copy_stream_impl.h>
中定义。
根据API documentation,FileOutputStream
类位于命名空间google::protobuf::io
下 - 但我在此命名空间中可以看到的唯一定义是CodedOutputStream
,{{1} },CodedInputStream
和ZeroCopyOutputStream
。
有没有人对如何解决这个问题有任何想法?仅供参考,我正在使用带有protobuf-2.4.0a版本的Microsoft Visual Studio 2010。这是我的代码片段和生成的错误消息(Intellisense以及编译器错误):
ZeroCopyInputStream
警告C4996:'_ open':此函数或变量可能不安全。请考虑使用_sopen_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。
IntelliSense:期望一个类型说明符
错误C2061:语法错误:标识符'FileOutputStream'
错误C2039:'FileOutputStream':不是'google :: protobuf :: io'的成员
答案 0 :(得分:2)
似乎我的代码明确要求:
#include <google/protobuf/io/zero_copy_stream_impl.h>
我认为默认情况下会包含它,但显然情况并非如此。感谢Kenton Varda指出这一点。