0

文字列を含む ctypes 構造を作成し、意味のある値で初期化するのに少し問題があります。

これが私の構造です:

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

そして、ここで私はそれを初期化しようとしています

obj = MyStruct( "something" )

もちろん、両方の試みは失敗します。エラーメッセージは次のとおりです。

obj_1= MyStruct( "something" ) TypeError: str インスタンスの代わりに文字列または整数アドレスが必要です

*c_char_p* operator 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 に答える