我在创建带有字符串的ctypes结构并使用有意义的值初始化时遇到了一些问题。
这是我的结构:
class MyStruct( Structure ):
_fields_ = [ ("someString", c_char_p) ]
这是我试图初始化它
obj = MyStruct( "something" )
两次尝试都失败了。这是错误消息:
obj_1 = MyStruct(“某事”) TypeError:期望的字符串或整数地址而不是str实例
如果我使用* c_char_p *运算符,也会发生同样的事情 obj = MyStruct(c_char_p(“something”))
我必须提到这段代码是在Blender 2.63a环境中执行的。
有人可以帮我解决这个问题吗?
答案 0 :(得分:5)
您需要使用__init__
method to instantiate:
class MyStruct( Structure ):
def __init__(self,some_string):
self._fields_ = [ (some_string, c_char_p) ]
然后制作一个新的结构,应该工作:
obj = MyStruct( "something" )