error C2059: 语法错误:“常量”解决方案

场景


     添加海康,宇视SDK对接的头文件和库文件,编译出错提示error C2059: 语法错误:“常量”。显示宇视SDK头文件NetDEVSDK.h中宏定义异常
 typedef enum tagNETDEV_PASSIVEDECODE_CMD
 {
  PASSIVE_DEC_PAUSE = 1,   /* 被动解码暂停(仅文件流有效) */
  PASSIVE_DEC_RESUME = 2,   /* 恢复被动解码(仅文件流有效) */
  PASSIVE_DEC_FAST = 3,   /* 快速被动解码(仅文件流有效) */
  PASSIVE_DEC_SLOW = 4,   /* 慢速被动解码(仅文件流有效) */
  PASSIVE_DEC_NORMAL = 5,   /* 正常被动解码(仅文件流有效) */
  PASSIVE_DEC_ONEBYONE = 6,   /* 被动解码单帧播放(保留) */
  PASSIVE_DEC_AUDIO_ON = 7,   /* 音频开启 */
  PASSIVE_DEC_AUDIO_OFF = 8,   /* 音频关闭 */
  PASSIVE_DEC_RESETBUFFER = 9    /* 清空缓冲区 */
 }NETDEV_PASSIVEDECODE_CMD_E;

NetDEVSDK.h(5082): error C2059: 语法错误:“常量”
NetDEVSDK.h(5091): error C2143: 语法错误: 缺少“;”(在“}”的前面)

鼠标放在PASSIVE_DEC_PAUSE,看到错误提示:#define        PASSIVE_DEC_PAUSE            1



排查过程
             在Notepad++对整个工程目录进行宏定义搜索PASSIVE_DEC_PAUSE,发现在海康的头文件中已有定义HCNetSDK.h
#define        PASSIVE_DEC_PAUSE            1    /*被动解码暂停(仅文件流有效)*/
#define        PASSIVE_DEC_RESUME            2    /*恢复被动解码(仅文件流有效)*/
#define     PASSIVE_DEC_FAST              3   /*快速被动解码(仅文件流有效)*/
#define     PASSIVE_DEC_SLOW            4   /*慢速被动解码(仅文件流有效)*/
#define     PASSIVE_DEC_NORMAL          5   /*正常被动解码(仅文件流有效)*/
#define     PASSIVE_DEC_ONEBYONE          6  /*被动解码单帧播放(保留)*/
#define     PASSIVE_DEC_AUDIO_ON         7   /*音频开启*/
#define     PASSIVE_DEC_AUDIO_OFF        8       /*音频关闭*/
#define        PASSIVE_DEC_RESETBUFFER        9    /*清空缓冲区*/
所以才会出现上面的提示错误


解决方案

            在宇视SDK头文件中没有搜索到NETDEV_PASSIVEDECODE_CMD_E宏定义的使用,因此,直接注释掉整个宏定义解决问题


上一篇:题目清单(更新至2016年12月17日 10:52)


下一篇:rpcbind 启动报错