[[開発ノウハウ集]]

~

(''src/Samples/MyEPApp'' も参照してください.)

~

SpringheadのIfクラスだけでなく,アプリケーションにおいて自前で用意したクラスも,
swigを用いてPythonからアクセス可能にすることができます.

~

** 0. モジュール名をきめる [#u3fdbf69]
- このサンプルでは MyEPApp です.
-- 含まれるクラス名とは必ずしも一致しなくて構いません.

** 1. 用意するファイル [#u0a57b0e]
- クラスヘッダ(モジュール名.h)
- .iファイル(モジュール名.i) %module や %ignore を適切に用意し, 最後に %include "モジュール名.h"
- %module:モジュール名
- %ignore:pythonからアクセスしなくて良いMyEPAppクラスのメソッド or コンパイルが通らないメソッドの除外(UTRefまわりで起きる)

** 書き換えるファイル [#n517199b]

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

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

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