0

我在创建一个包含字符串的 ctypes 结构并用有意义的值初始化它时遇到了一些问题。

这是我的结构:

class MyStruct( Structure ):
    _fields_ = [ ("someString", c_char_p) ]

这是我试图初始化它

obj = MyStruct( "something" )

当然,这两种尝试都失败了。这是错误消息:

obj_1= MyStruct("something") TypeError: string or integer address expected instead of str instance

如果我使用 *c_char_p* 运算符 obj = MyStruct( c_char_p( "something" ) ) 也会发生同样的事情

我必须提到,这段代码是在 Blender 2.63a 环境中执行的。

谁能帮我解决这个问题?

4

1 回答 1

5

您需要使用该__init__方法来实例化

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

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

obj = MyStruct( "something" )
于 2012-08-31T13:25:34.043 回答