def writepmc(self, type_a, type_d, datano_s, datano_e, value):
# datano_s & datano_e = start & end number
length = 8 (datano_e - datano_s 1)
# c union datatype
class UnionC(ctypes.Union):
_fields_ = [
('cdata[N]', ctypes.c_char),
('idata[N]', ctypes.c_short),
('ldata[N]', ctypes.c_long),
('fdata[N]', ctypes.c_float),
('dfdata[N]', ctypes.c_double),
]
union = UnionC()
union.ldata[0] = value
class Iodbpmc(ctypes.Structure):
_fields_ = [("type_a", ctypes.c_short),
("type_d", ctypes.c_short),
("datano_s", ctypes.c_short),
("datano_e", ctypes.c_short),
("u", union)]
iodbpmc = Iodbpmc()
iodbpmc.type_a = type_a
iodbpmc.type_d = type_d
iodbpmc.datano_s = datano_s
iodbpmc.datano_e = datano_e
ret = focas.pmc_wrpmcrng(libh, length, ctypes.byref(iodbpmc))
self.wrpmc_errorcheck(ret)
return ret
我正在開發通用機器人,必須使用 Python 2.7。我也在使用 CTypes 庫。我不斷收到標題中的錯誤,不確定我做錯了什么。
我對 Python 中的 CTypes 或 OOP 沒有太多經驗。有誰知道是什么導致了錯誤?
uj5u.com熱心網友回復:
我設法自己解決了這個問題。
我寫:
class UnionC(ctypes.Union):
_fields_ = [
('cdata', ctypes.c_char),
('idata', ctypes.c_short),
('ldata', ctypes.c_long),
('fdata', ctypes.c_float),
('dfdata', ctypes.c_double),
]
我洗掉了:
union = UnionC()
union.ldata[0] = value
這些變化為我解決了這個問題。我很確定上面兩行是導致問題的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/496649.html
標籤:Python python-2.7 类型
上一篇:在映射索引中不可能進行多重搜索?
下一篇:從C中的字串中洗掉前10個字符?