トルコ水紀行 -前編 イスタンブール- みなさんこんばんは、地図子です!8月は久しぶりに毎月更新にしようと思います。今までずっと名古屋について書いてきましたが、ワープして・・・ トルコについて書きたいと思います。 2024年6月に念願のトルコに行ってきました。いつからトルコに行きたかったかわから…
今回は Python の ctypes モジュールを使い C++ クラスを Python から呼び出してみました。 ctypes モジュールは python2.5 以降では標準で含まれるようです。 まずは C++ クラスのコンストラクタ、デストラクタ、メンバ関数の wrapper 関数を作り、 Python から呼び出してみました。 題材は昨今作成中の詰将棋プログラムです。 以下のサンプル出力では、 まず共有ライブラリ libcshogi.so をロードし、 次にコンストラクタに盤面情報を文字列で渡し、 最後に探索メソッドを呼び出し、解答を出力しています。 ctypes は使い易い。Python 標準実装と云うのも心強いし、 とりあえず決まりかな^^ $ python2.5 >>> import ctypes >>> so=ctypes.CDLL("./libcshogi.so") >>>
pythonて言語には元からCでのAPIがあるのですが、いちいちpythonの中のオブジェクトとCでの変数とをやり取りする際に型の変換が必要になります。pythonの世界では全ての変数がオブジェクトなので仕方ないのですが・・・。そこで、ctypesというモジュールを使うことで、ある程度簡単にこの変数の型変換を行えるようになります。pythonからCのDLLを呼んだり、pythonからCの関数をcallしたりする際には重宝しそうです。 以下、簡単なサンプルです。 まず、python側のコード import ctypes # DLLをロード lib = ctypes.cdll.LoadLibrary("CalcDll.dll") # 関数呼び出し print lib.fnCalcDll(None) # 配列渡し TenIntegers = ctypes.c_int * 10 ii = TenI
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く