NET_DVR_LOCAL_BYTE_ENCODE_CONVERT
字符编码转换参数结构体。
struct{
CHAR_ENCODE_CONVERT fnCharConvertCallBack;
BYTE byRes[256];
}NET_DVR_LOCAL_BYTE_ENCODE_CONVERT,*LPNET_DVR_LOCAL_BYTE_ENCODE_CONVERT;
Members
- fnCharConvertCallBack
- 字符编码转换回调函数
- byRes
- 保留,置为0
Callback Function
typedef int(CALLBACK *CHAR_ENCODE_CONVERT)(
char *pInput,
DWORD dwInputLen,
DWORD dwInEncodeType,
char *pOutput,
DWORD dwOutputLen,
DWORD dwOutEncodeType
);
Callback Function Parameters
- pInput
- [in] 输入字符串,内存由SDK申请,字符串数据也由SDK提供
- dwInputLen
- [in] 输入字符串缓冲区大小
- dwInEncodeType
- [in] 输入的字符编码格式:0- 无字符编码信息(老设备),1- GB2312(简体中文),2- GBK,3- BIG5(繁体中文),4- Shift_JIS(日文),5- EUC-KR(韩文),6- UTF-8,7- ISO8859-1,8- ISO8859-2,9- ISO8859-3,…,依次类推,21- ISO8859-15(西欧)
- pOutput
- [out] 输出字符串,内存由SDK申请,存放使用用户字符编码接口转换之后的字符串
- dwOutputLen
- [out] 输出字符串缓冲区大小
- dwOutEncodeType
- [out] 输出字符编码格式:0- 无字符编码信息(老设备),1- GB2312(简体中文),2- GBK,3- BIG5(繁体中文),4- Shift_JIS(日文),5- EUC-KR(韩文),6- UTF-8,7- ISO8859-1,8- ISO8859-2,9- ISO8859-3,…,依次类推,21- ISO8859-15(西欧)
Remarks
- 回调函数的返回值:-1表示失败,0表示成功(内存足够存放转换以后的字符串)。
- 设备的字符编码类型在登录接口返回,对应NET_DVR_DEVICEINFO_V40结构体中的参数byCharEncodeType。SDK内部需要字符编码转换时,SDK默认使用libiconv库进行类型转换。如果不想使用libiconv编码库,可以调用NET_DVR_SetSDKLocalCfg(类型: NET_SDK_LOCAL_CFG_TYPE_BYTE_ENCODE)设置字符转码回调函数,告知SDK用户自己的字符编码接口,然后SDK将使用用户提供的字符编码接口进行字符串处理。
See Also
NET_DVR_SetSDKLocalCfg