C ラッパーを使用せずに Python で DLL ファイルを使用する
追加の C ラッパーに頼ることなく、Python 内で DLL ファイルをシームレスに利用できます。強く推奨される簡単なアプローチの 1 つは、ctypes を使用することです。
ctypes の紹介
ctypes は、C 互換ライブラリとの対話を容易にするネイティブ Python モジュールを提供します。 C に似たデータ型 (int、char、void* など) を提供し、値または参照によってパラメーターを渡すことができます。さらに、特定のデータ型の戻りも処理できます。
使用例
実際のコード (Python 2.5) に基づいて、次の例を考えてみましょう。
<code class="python">import ctypes # Load the DLL. hllDll = ctypes.WinDLL("c:\PComm\ehlapi32.dll") # Function prototype and parameters. hllApiProto = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p) hllApiParams = ((1, "p1", 0), (1, "p2", 0), (1, "p3", 0), (1, "p4", 0)) # Function mapping. hllApi = hllApiProto(("HLLAPI", hllDll), hllApiParams) # Function call. p1 = ctypes.c_int(1) p2 = ctypes.c_char_p(sessionVar) p3 = ctypes.c_int(1) p4 = ctypes.c_int(0) hllApi(ctypes.byref(p1), p2, ctypes.byref(p3), ctypes.byref(p4))</code>
この例では、HLL API が使用され、パラメータは値または参照によって渡されます (HLLAPI 仕様に従って)。この関数は Python 名 (hllApi) にマップされ、必要な変数を使用して呼び出されます。
結論
ctypes を利用し、図示されたアプローチに従うことで、開発者はシームレスに対話できます。外部 C コードを必要とせずに、DLL ファイルを使用して実行できます。これにより、Python スクリプト内からこれらのライブラリの機能を直接活用できるようになります。
以上がC ラッパーを使用せずに Python で DLL ファイルを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。