Kni*_*our 3 protocol-buffers visual-c++
我正在尝试使用协议缓冲区将多个消息序列化到一个文件 - 按照此处所示的实现- 但我遇到了一个问题,即我无法FileOutputStream访问<zero_copy_stream_impl.h>.
根据API 文档,该类FileOutputStream位于命名空间下google::protobuf::io- 但我在该命名空间下可以看到的唯一定义是CodedOutputStream, CodedInputStream, ZeroCopyOutputStream, 和ZeroCopyInputStream。
有谁对如何解决这个问题有任何想法?仅供参考,我正在使用带有 protobuf-2.4.0a 构建的 Microsoft Visual Studio 2010。这是我的代码片段和生成的错误消息(智能感知以及编译器错误):
int outfd = _open(fileName.c_str(), _O_CREAT | _O_BINARY | _O_APPEND | _O_WRONLY);
google::protobuf::io::ZeroCopyOutputStream *output = new google::protobuf::io::FileOutputStream(outfd);
Run Code Online (Sandbox Code Playgroud)
警告 C4996:“_open”:此函数或变量可能不安全。考虑使用 _sopen_s 代替。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。
IntelliSense:需要类型说明符
错误 C2061:语法错误:标识符“FileOutputStream”
错误 C2039:“FileOutputStream”:不是“google::protobuf::io”的成员
看来我的代码明确要求这样做:
#include <google/protobuf/io/zero_copy_stream_impl.h>
我认为默认情况下会包含它,但显然情况并非如此。感谢 Kenton Varda 指出了这一点。
| 归档时间: |
|
| 查看次数: |
3085 次 |
| 最近记录: |