VS2008下Protocol Buffer错误C2059
Protocol Buffer error C2059 under VS2008
现在我在协议缓冲区中定义了一条消息
message Test
{
enum OperationFlag
{
ADD = 0;
DELETE = 1;
}
optional OperationFlag flag = 1;
}
遵守protoc
(2.5.0版本)后,会生成头文件。但是下面一行
有一个错误 syntax error : 'constant'
static const OperationFlag DELETE = Test_OperationFlag_DELETE;
调查后发现DELETE
已经在WinNT.h
中声明了
#define DELETE (0x00010000L)
好像DELETE
不能在protocol buffer中声明?我对吗?还是protocol buffer中还有其他关键字不能用?
如果您不使用 WinNT.h 中的 DELETE
,您可以使用 #undef
:
取消定义
#include "windows.h"
#undef DELETE
....
static const OperationFlag DELETE = Test_OperationFlag_DELETE;
现在我在协议缓冲区中定义了一条消息
message Test
{
enum OperationFlag
{
ADD = 0;
DELETE = 1;
}
optional OperationFlag flag = 1;
}
遵守protoc
(2.5.0版本)后,会生成头文件。但是下面一行
syntax error : 'constant'
static const OperationFlag DELETE = Test_OperationFlag_DELETE;
调查后发现DELETE
已经在WinNT.h
#define DELETE (0x00010000L)
好像DELETE
不能在protocol buffer中声明?我对吗?还是protocol buffer中还有其他关键字不能用?
如果您不使用 WinNT.h 中的 DELETE
,您可以使用 #undef
:
#include "windows.h"
#undef DELETE
....
static const OperationFlag DELETE = Test_OperationFlag_DELETE;