C++ VS2008下的协议缓冲区错误C2059

C++ VS2008下的协议缓冲区错误C2059,c++,protocol-buffers,C++,Protocol Buffers,现在我在协议缓冲区中定义了一条消息 message Test { enum OperationFlag { ADD = 0; DELETE = 1; } optional OperationFlag flag = 1; } 遵循协议(版本2.5.0)后,将生成头文件。但是,有一个错误语法错误:“constant”用于下一行 static const OperationFlag DELETE = Test_OperationFlag

现在我在协议缓冲区中定义了一条消息

message Test
{
    enum OperationFlag
    {
        ADD = 0;
        DELETE = 1;
    }
    optional OperationFlag flag = 1;
}
遵循
协议
(版本2.5.0)后,将生成头文件。但是,有一个错误
语法错误:“constant”
用于下一行

static const OperationFlag DELETE = Test_OperationFlag_DELETE;
经过调查,我发现
DELETE
已经在
WinNT.h

#define DELETE  (0x00010000L)

似乎
DELETE
无法在协议缓冲区中声明?我说得对吗?或者是否有其他关键字不能在协议缓冲区中使用?

如果不使用WinNT.h中的
删除
,则可以使用
#undef
将其取消定义:

#include "windows.h"
#undef DELETE
....
static const OperationFlag DELETE = Test_OperationFlag_DELETE;