開発ノウハウ集
(src/Samples/MyEPApp も参照してください.)
SpringheadのIfクラスだけでなく,アプリケーションにおいて自前で用意したクラスも,
swigを用いてPythonからアクセス可能にすることができます.
0. モジュール名をきめる
- このサンプルでは MyEPApp です.
- 含まれるクラス名とは必ずしも一致しなくて構いません.
1. 用意するファイル
- クラスヘッダ(モジュール名.h)
- .iファイル(モジュール名.i) %module や %ignore を適切に用意し, 最後に %include "モジュール名.h"
- %module:モジュール名
- %ignore:pythonからアクセスしなくて良いMyEPAppクラスのメソッド or コンパイルが通らないメソッドの除外(UTRefまわりで起きる)
書き換えるファイル
- RunSwig.bat の先頭(MODULEやBINを適切にセットする)
ビルドの方法
- RunSwig.batを走らせる
- (手動で走らせるか,カスタムビルドステップ等を自分で設定する必要があります.)
- グルーコード,SprEPモジュール名.h, EPモジュール名.h,EPモジュール名.cppが生成される
- ビルドする
実行前に
- SprEPモジュール名.hとEPモジュール名.hをインクルードする(おそらくmain.cpp)
- main関数内のinterpreter->Initialize();のあとで関数Initモジュール名();を呼ぶ
- この関数はSprEPモジュール名.hで宣言されている
- Springhead関係はinterpreter->Initialize();で初期化されるが,自前のものは初期化されないのでここでやっておく