これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ctypeslib です。
プログラム:
NAME
h2xml - ヘッダー ファイルを XML 中間ファイルに変換します
xml2py - XML 中間ファイルを Python ctypes インターフェイスに変換します
SYNOPSIS
h2xml インクルードファイル ...[オプション] -o 出力xmlファイル
xml2py xmlファイル ...[オプション] -o 出力ファイル
DESCRIPTION
ctypeslib C ヘッダー ファイルを XML ファイルに変換できる Python コード ジェネレーターです。
(gccxml を使用)、xml ファイルを ctypes を定義する Python モジュールに変換します。
対応する C ライブラリへのインターフェイス。
Ctypeslib は ctypes ではありません。 Ctypes は Python 2.5 以降に含まれており、それ以下のバージョンのアドオンとして含まれています。
一方、ctypeslib は、ctypes 作者によって作成されたあまり知られていないアドオンです。 もし、あんたが
ctypes を頻繁に使用し、argtypes を設定したり、呼び出された関数の型を変更したりすることにうんざりしています。
ctypeslib を調べる必要があります。 Ctypeslib は、次のデータ型と構造体をセットアップすることもできます。
C ヘッダー ファイルが自動的に作成されます。
h2xml と xml2py ctypeslib へのユーザー インターフェイス スクリプトです。 h2xml C ヘッダーを変換します
ファイルを XML 中間体に変換する (使用 gccxml)と xml2py これらの中間体をに変換します
Python ファイル。 少なくとも、C 型の自動構築を取得できます。
ctypes 定義内の (構造体など)。 追加のオプションを使用すると、マクロ定義を次のように行うことができます。
展開すると、出力 Python ファイルを (ctypes を使用して) 自動的にリンクできます。
対応するCライブラリ。
最も簡単な例は次のとおりです。
h2xml header.h -o out_c.xml
xml2py out_c.xml -o out_c.py
プリプロセッサ シンボルを取得するには、 -c フラグを立てる h2xml。 自動リンクするには
ctypes 経由で C ライブラリに渡す場合は、関連するライブラリを渡す必要があります。 xml2py -l
library.so.
OPTIONS
h2xml オプション:
-h, - 助けて
簡単なヘルプメッセージを表示する
-q, - 静かな
-D 名前[=値]
定義するマクロ
-U NAME
定義を解除するマクロ
-I DIRECTORY
追加のインクルードディレクトリ
-o XMLファイル
XML出力ファイル名
-c, --cpp-symbols
#define シンボルを見つけてみてください - これによりコンパイラ エラーが発生する可能性があるため、オフになります
デフォルト。
-k 作成された一時ファイルは削除しないでください (問題を見つけるのに役立ちます)
xml2py オプション:
-h, - 助けて
このヘルプメッセージを表示して終了します
-c コメントにソースファイルの場所を含める
-d C プロトタイプとソース ファイルの場所を含む docstring を含める
-k タイプの種類
含める型の説明の種類: d = #defines、e = 列挙、f =
関数、s = 構造体、t = typedef
-l DLL
エクスポートされた関数を検索するライブラリ
-o 出力
出力ファイル名 (指定しない場合は標準出力が使用されます)
-r 表現
含めるシンボルの正規表現 (シンボルも
式が指定されている場合、すべてが含まれます)
-s SYMBOL
含めるシンボル (シンボルも式も含めない場合)
指定されたものはすべて含まれます)
-v 詳細な出力
-w すべての標準 Windows DLL を検索された DLL リストに追加します
-m モジュール
代わりにインポートされるシンボルを含む Python モジュール
生成された
-プリロード=DLL
他の DLL よりも先にロードされる DLL (シンボルを解決するため)
例
ご覧ください /usr/share/doc/python-ctypeslib/examples.Debian 例と説明については。
onworks.net サービスを使用してオンラインで ctypeslib を使用する