Caution: This chapter is under repair! This chapter describes SWIG's support of Python. SWIG is compatible with most recent Python versions including Python 3.0 and Python 2.6, as well as older versions dating back to Python 2.0. For the best results, consider using Python 2.3 or newer. This chapter covers most SWIG features, but certain low-level details are covered in less depth than in earlier
スクリプト言語から C のライブラリを使うためのラッパを作るなら SWIG です。使ってみると、これが思っている以上に強力でエレガントにラップしてくれることに気づきます。 SWIG のすごさというのは、各言語の最大公約数の部分をうまく共通化させてくれるところだ。たとえば、現代的な言語はどれもクラス、文字列型、配列、例外機構といったものを備えているわけだから、それらを自動で相互に変換して欲しい。class は別言語のクラスに、std::vector は配列に、std::string は文字列に自動で読み替えて欲しい。もちろん、それ以外に表現方法があるのはわかるんだけど、他言語とのインターフェースという限られた用途に最適性を求めるのは不毛だろう。 http://python.matrix.jp/tips/cpp_extension.html いろんな人が言及しているので、二番三番煎じなんですが
とりあえずpython2から。 VC9ExpressEditionで本家のcpythonバージョン2.6向けのモジュールをビルドしたメモ。 swigは最初cygwinのものを使ったが、バージョンが1.3.38とちょっと古かったのでswigのサイトでwindows向けビルド(1.3.40)を落としてきた。ついでなので2つのswigの出力結果を比べてみたところわりと違った。たぶん改行コードの違いとバージョンの違いが主だと思うが、最新版のWindowsビルドを使うほうが無難な気がする。 後で使う予定のポリゴンローダを模した練習用のC++コード main.cpp #include "loader.h" #include <iostream> int main(int argc, char **argv) { Loader l; if(!l.read(argv[1])){ return 1; } s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く