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;