如何从 ctypes.c_byte 转换或获取准确值
How can I convert or get the exact value from ctypes.c_byte
所以,我正在使用 ctypes 调用一个 dll 函数。我传入 return 变量 by_ref()。在代码中它看起来像:
mydll = cdll('dllpath')
terminal_id = BYTE()
print("terminal id before api call:",terminal_id)
ret = mydll.func(input,byref(terminal_id))
print("terminal id after api call:",terminal_id)
打印以下代码:
terminal id before api call:c_byte(0)
terminal id after api call:c_byte(53)
我有一个 gui 可以从 gui 与终端交互,终端 ID 是:6380491601819081
如何从 returned terminal_id 变量中提取它?
您可以使用 terminal_id.value
获取值。
print(dir(terminal_id))
将显示 c_byte
类型的属性和方法。
ctypes 中的 c_byte
似乎是 C 中的 char
(ctypes doc).
import ctypes
x = ctypes.c_byte(3)
print(dir(x))
print(x.value)
6380491601819081 一个字节都放不下。类型不够大。
所以,我正在使用 ctypes 调用一个 dll 函数。我传入 return 变量 by_ref()。在代码中它看起来像:
mydll = cdll('dllpath')
terminal_id = BYTE()
print("terminal id before api call:",terminal_id)
ret = mydll.func(input,byref(terminal_id))
print("terminal id after api call:",terminal_id)
打印以下代码:
terminal id before api call:c_byte(0)
terminal id after api call:c_byte(53)
我有一个 gui 可以从 gui 与终端交互,终端 ID 是:6380491601819081
如何从 returned terminal_id 变量中提取它?
您可以使用 terminal_id.value
获取值。
print(dir(terminal_id))
将显示 c_byte
类型的属性和方法。
ctypes 中的 c_byte
似乎是 C 中的 char
(ctypes doc).
import ctypes
x = ctypes.c_byte(3)
print(dir(x))
print(x.value)
6380491601819081 一个字节都放不下。类型不够大。