開発ノウハウ集


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はsrc/Samples/MyEPAppからコピーしてください.
  • コピー後,ファイル先頭にある3つの設定変数を正しく書き換えてください.
    • MODULE : 1. で .iファイルに書いたモジュール名(%module)
    • BIN : Springhead2/bin への相対パス
    • INCLUDE : Springhead2/include への相対パス

ビルドの方法

  • RunSwig.batを走らせる
    • 手動で走らせるか,カスタムビルドステップ等を自分で設定する必要があります.)
  • グルーコード,SprEPモジュール名.h, EPモジュール名.h,EPモジュール名.cppが生成される
  • ビルドする

実行前に

  • SprEPモジュール名.hとEPモジュール名.hをインクルードする(おそらくmain.cpp)
  • main関数内のinterpreter->Initialize();のあとで関数Initモジュール名();を呼ぶ
  • この関数はSprEPモジュール名.hで宣言されている
    • Springhead関係はinterpreter->Initialize();で初期化されるが,自前のものは初期化されないのでここでやっておく