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

Pio*_*him 0 python string ctypes

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

这是我的结构:

class MyStruct( Structure ):
    _fields_ = [ ("someString", c_char_p) ]
Run Code Online (Sandbox Code Playgroud)

这是我试图初始化它

obj = MyStruct( "something" )
Run Code Online (Sandbox Code Playgroud)

两种尝试都失败了.这是错误消息:

obj_1 = MyStruct("something")TypeError:期望的字符串或整数地址而不是str实例

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

我必须提到这个代码是在Blender 2.63a环境中执行的.

任何人都可以帮我解决这个问题吗?

And*_*den 5

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

class MyStruct( Structure ):
    def __init__(self,some_string):
         self._fields_ = [ (some_string, c_char_p) ]
Run Code Online (Sandbox Code Playgroud)

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

obj = MyStruct( "something" )
Run Code Online (Sandbox Code Playgroud)