【问题标题】:ctypes strings defined in a ctype structure don't work在 ctype 结构中定义的 ctypes 字符串不起作用
【发布时间】:2012-08-31 13:20:59
【问题描述】:

我在创建一个包含字符串的 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 环境下执行的。

谁能帮我解决这个问题?

【问题讨论】:

    标签: python string ctypes


    【解决方案1】:

    您需要使用__init__ method to instantiate:

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

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

    obj = MyStruct( "something" )
    

    【讨论】:

    • @Paksas,您应该通过选择左侧的支票并投票任何有用的答案来接受最佳答案。这是奖励帮助您的人的最佳方式。
    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2016-10-18
    • 2014-08-29
    • 1970-01-01
    • 2016-09-30
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多