API
DWORD NET_DVR_GetSDKVersion(
);
文档
2 higher bytes mean the major version, 2 lower bytes mean the minor version, e.g. 0x00030000 means version 3.0.
它返回一个DWORD
值。我做了一些研究,发现在Python中DWORD
等于ctypes.c_ulong
。在
但是,我从API得到的只是一个没有意义的整数393216
。在
编码
^{pr2}$我已经使用c_char_p
和其他几种类型设置了返回值类型,但是结果并没有什么意义。在
正如您在示例中看到的,数字是十六进制格式(0x前缀)。在十六进制格式中,您可以很容易地看到字节-2个十六进制数字=1个字节(因为16*16是256)。在
您需要使用
hex(your_value_here)
将您的数字转换为十六进制,并将其分为两部分用于主要版本和次要版本。在在您的例子中,}作为更高的字节(主要版本),给出版本6.0
hex(393216)
返回'0x60000'
-也就是说,0x0
作为2个较低的字节(次要版本),而{编辑:
还可以使用二进制操作提取版本。使用
your_number_here>>16
将数字16位(2个字节)右移,即删除下面的2。在所以
your_number>>16
代表大调,your_number - (your_number>>16<<16)
代表小调。在后处理您的数字,以提取上下16位,并将其格式化为字符串。下面是使用Python 3.6+f字符串的示例:
相关问题 更多 >
编程相关推荐