宣言のdefineをchar *
使用して、基本型が、のPythonC拡張機能でオブジェクトのメンバーを作成するのは簡単です。T_STRING
PyMemberDef
に相当するものがないように見えるのはなぜwchar_t *
ですか?そして、実際に1つあるとしたら、それは何ですか?
例えば
struct object
含むchar *text
PyMemberDef
アレイには{"text", T_STRING, offsetof(struct object, text), READONLY, "This is a normal character string."}
対のようなもの
struct object
含むwchar_t *wtext
PyMemberDef
アレイには{"wtext", T_WSTRING, offsetof(struct object, wtext), READONLY, "This is a wide character string"}
のようなものPyUnicode_AsString()
とそれに関連するメソッドを使用して、UTF-8でデータをエンコードし、基本的なchar文字列に格納し、後でデコードできることを理解していますが、そのようにするには、ジェネリックgetattr
とsetattr
メソッド/関数を次のようなものでラップする必要があります。エンコードされたテキストを考慮します。構造体内に固定要素サイズの文字配列が必要で、構造体に格納できる有効な文字数を変更したくない場合は、あまり役に立ちません。