● fixed X ユーティリティー - 関数リファレンス

StrCalc 初期化

    int __stdcall    fixedutil_strcalc_init(PFIXED_STRCALC_PARAM pinf ,int width ,PMEMTABLEINFO pmem,PMEMFUNC pfunc );

引数

引数名意味
pinfFIXED_STRCALC_PARAM構造体の実体の先頭アドレス
width数値幅(バイト単位)
pmemMEMTABLEINFO構造体の実体の先頭アドレス
pfuncMEMFUNC構造体の実体の先頭アドレス

戻り値

正常終了した場合は STATUS_NORMAL を返します。
設定値が異常な場合は STATUS_PARAMERROR 、メモリの確保に失敗した場合は STATUS_NOTENOUGHMEM を返します。

説明

StrCalc の初期化処理を行います。関数fixedutil_strcalc を使用する前に、必ず実行する必要があります。

引数 pinf の指す FIXED_STRCALC_PARAM構造体の領域は、ゼロクリアする必要はありません(関数側で行います)。関数fixedutil_strcalc_init は widthpfunc を使用して、計算に必要な環境を pinf の指す領域に構築します。
FIXED_STRCALC_PARAM構造体.

typedef struct {
    char            *str;
    PMEMTABLEINFO   pmem;
    PFIXEDVAL       pans;
    unsigned long   work[18];
} FIXED_STRCALC_PARAM,*PFIXED_STRCALC_PARAM;
メンバ名意味
str計算させる文字列を格納した領域の先頭アドレス
pmemStrCalc 文法上のメモリを格納した領域の先頭アドレス
pans計算結果が格納される領域の先頭アドレス
workStrCalc 用ワークエリア
この領域の内容は変更しないでください

関数の引数 pmem は StrCalc 文法上のメモリを意味し、使用しない場合は NULL を指定する事ができます。
引数pmem は FIXED_STRCALC_PARAM構造体内のメンバ pmem にコピーされますが、関数fixedutil_strcalc_init を通して設定しなければならない訳ではなく、構造体へ自由に設定する事ができます。

関数fixedutil_strcalc_init は、与えるパラメータが次のような状態の場合、STATUS_PARAMERROR を返し終了します。

fixedutil_strcalc_init は引数width を使用して、内部処理で使用するワークエリアを確保します。このワークエリアは、関数
fixedutil_strcalc_term が実行されるまで存在し続けます。
このため、fixedutil_strcalc_init 実行後は数値幅を変更する事ができません。変更したい場合は、一度 fixedutil_strcalc_term で終了して、再び fixedutil_strcalc_init で環境を再構築するか、新たに FIXED_STRCALC_PARAM構造体の領域を確保して別の環境を構築してください。

計算が済んだら関数fixedutil_strcalc_term で環境を破棄してください。