如何从 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 一个字节都放不下。类型不够大。