2014年3月17日月曜日

C言語との連携 ctypes


pythonは高機能で大変便利ですが、処理が遅いので困る場合があります。
そういう場合は、いろいろと工夫して高速化する方法があります。

ctypesによるDLLの利用はその高速化手法の一つです。
つまり、C言語(など)でDLLを作成して、pythonから読み込みます。
そのDLLを呼びだすためのライブラリがctypesです。

import ctypes

d = ctypes.cdll.LoadLibrary("libx.dll")


C言語と言いましたが、実際C++で作成しても構いません。
但し、呼びだす関数部分はC言語の方式で書かなければなりません。

つまり裏側ではC++のclass定義やインスタンスを生成しても構いませんが、
pythonから呼び出す部分は

extern "C"

などとしてC言語方式で、関数にしなければならないということです。




0 件のコメント:

コメントを投稿