千家信息网

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

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,场景添加海康,宇视SDK对接的头文件和库文件,编译出错提示error C2059: 语法错误:"常量"。显示宇视SDK头文件NetDEVSDK.h中宏定义异常typedef enum tagNETDE
千家信息网最后更新 2024年09月22日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宏定义的使用,因此,直接注释掉整个宏定义解决问题


0