#define ステートメント、列挙型、および構造体を含む C++ ヘッダーがあります。Python に含まれている h2py.py スクリプトを使用してみましたが、役に立ちませんでした (#defines が変換されたことを除いて)。どんな助けでも大歓迎です。
4 に答える
h2py についてはわかりませんが、'ctypes' と 'ctypeslib' を参照してください。ctypes は python 2.5+ に含まれており、c 構造体とのバイナリ互換性を作成することを目的としています。
ctypeslib を追加すると、'h2xml.py' スクリプトと 'xml2py.py' を含む codegen というサブツールが得られます。これらの組み合わせにより、探している Python コードが C++ から自動生成されます。ヘッダー。
ctypeslib: http://pypi.python.org/pypi/ctypeslib/0.5.4a
h2xml.py には、gccxml という別のツールが必要です: http://www.gccxml.org/HTML/Index.html
gccxml の最新バージョンを (CVS 経由で) チェックアウトし、自分でビルドすることをお勧めします (実際には、言うより簡単です)。プリパッケージ版は古いです。
pycparserが見つかりました。役に立つかもしれません。
私が知る限り、h2py.py は #define マクロ以外のものを変換することを意図していません。私は一見の価値があるかもしれないcppheaderparserに出くわしました。
h2py が構造体や列挙型と関係があるという考えはどこから得たのですか?
ソースから
# Read #define's and translate to Python code.
# Handle #include statements.
# Handle #define macros with one argument.
'enum' と 'struct' という単語は、モジュールには表示されません。