Originは様々なタスクを実行するXファンクションと共に出荷されます。XファンクションはLabTalkとOriginCの両方から呼び出すことができます。このセクションはOriginCのXFBaseクラスを使用してXファンションを呼び出す方法を示します。 この仕組みはXファンクションをもう1つ、別のXファンクションで呼び出す時に使用できます。
XFBaseクラスはOrigin CシステムフォルダにあるXFBase.hヘッダファイルで宣言されます。XFBase.hヘッダファイルはOrigin.hヘッダファイルに含まれている物ではありません。そして、他のXFBase クラスを使用するOrigin Cとは別に含まれる必要があります。
#include <XFBase.h>
以下のOrigin CコードはファイルをOriginにインポートする一般的な何数を定義します。関数は2つの引数、データファイル名とインポートファイル名を使用します。関数はまずXFBaseクラスのインスタンスを作成します。これは呼び出されるXファンクションの名前を元に作成されます。この場合、Xファンクション名は「impFile」です。それから、Xファンクションの引数を SetArg メソッドでセットし、最終的にXファンクションをEvaluateメソッドで呼び出します。
bool call_impFile_XF(LPCSTR lpcszDataFile, LPCSTR lpcszFilterFile) { string strDataFile = lpcszDataFile; string strFilterFile = lpcszFilterFile; // XFBaseのインスタンスをXファンクション名を使って作成 XFBase xf("impFile"); if (!xf) return false; // 「fname」引数をセット if (!xf.SetArg("fname", strDataFile)) return false; // 「filtername」引数をセット if (!xf.SetArg("filtername", strFilterFile)) return false; // XFBaseの「Evaluate」メソッドを呼び出し、Xファンクションを実行 if (!xf.Evaluate()) return false; return true; }
以下のOrigin Cコードは上記で定義したcall_impFile_XF関数をどのように呼び出すのか示します。イメージファイルをインポートするために呼び出します。
// Originのサンプルフォルダにある、Carビットマップをインポート string strImageFile = GetAppPath(TRUE) + "Samples\\イメージ処理と分析\\Car.bmp"; // Lets import the bitmap using the Image import filter. string strFilterFile = GetAppPath(TRUE) + "Filters\\Image.oif"; // impFile Xファンクションを呼び出す一般的な関数を呼び出す call_impFile_XF(strImageFile, strFilterFile);