在64位Linux环境下使用海康摄像头SDK进行NET_DVR_FindFile_V30文件查询操作时遇到的报错处理
发布时间
阅读量:
阅读量
在Linux64环境下尝试调用NET_DVR_FindFile_V30函数以获取文件信息表时,系统返回状态码23(表示设备不支持访问该功能)
我的代码是这样的:

最初遇到的问题是:我使用了longValue()函数获取了一个值,并将其赋给了findFile变量。当我查看返回结果时发现该变量值为4294967295(注意:此处需要注意的是,在32位系统环境下此数值可能表示为溢出状态),对此我向技术支持部门进行了咨询
这种问题通常发生在数值溢出的情况下,在Linux 64位系统中出现于接口句柄的定义中。其中,在Linux 64位系统中占用了8个字节的空间相应的解决方案是将其转换为一个整数类型的变量占用4个字节的空间。实际上,在这种情况下会返回-1的值这通常表示该接口操作未能成功完成。可以通过调用NET_DVR_GetLastError来获取错误码以判断具体原因。
数字4294967295转换为十六进制表示为0xFFFFFFFF在使用一个整数类型(如int)时其值会被解释为-1这是因为超出范围后的数值溢出会导致负数结果;而在使用双倍空间(如long long)时则会被正确解析为原始
全部评论 (0)
还没有任何评论哟~
