ctype结构中定义的ctypes字符串不起作用

时间:2012-08-31 13:21:00

标签: python string ctypes

我在创建带有字符串的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环境中执行的。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

您需要使用__init__ method to instantiate

class MyStruct( Structure ):
    def __init__(self,some_string):
         self._fields_ = [ (some_string, c_char_p) ]

然后制作一个新的结构,应该工作:

obj = MyStruct( "something" )