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

场景


添加海康,宇视SDK对接的头文件和库文件,编译出错提示错误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):错误C2059:语法错误:“常”量
NetDEVSDK.h(5091):错误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宏定义的使用,因此,直接注释掉整个宏定义解决问题


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