● 関数リファレンス
変数情報テーブルのコピー
void __stdcall StrCalc_copy_paraminfo(PSTRCALC_PARAM pdest,PSTRCALC_PARAM psrc);
引数
戻り値
無し
説明
psrc の変数情報テーブルを pdest にコピーします(「変数構造概要」の図にある B だけをコピーする)。
この関数は変数自体を複製しないので、psrc と pdest で同一変数名にアクセスすると同じ変数を指します。
ユーザ定義関数テスト.
/*
関数名は任意です。引数は無し。
登録時に、呼び出し元の STRCALC_PARAM 情報を追加情報として渡します。
変数test_param を登録し、12345 をセットして終了します。戻り値は 0
*/
double __stdcall user_test(
double *arg,
int argcnt,
int *pret,
PSTRCALC_PARAM p_prm1)
{
/**********************************************************************************
何故、STRCALC_PARAM構造体の情報をコピーして使用しなければならないのかは、
「リファレンス」→「コールバック関数」→「MFUNC」のページにある注意点を参照して
ください。
**********************************************************************************/
STRCALC_PARAM prm2 = *p_prm1;
*pret = StrCalc_substitution(&prm2,"test_param = 12345",0,NULL,NULL,NULL);
/**********************************************************************************
関数StrCalc_copy_paraminfo を使って、ローカル環境 prm2 の変数情報を、呼び出し元
環境 *p_prm1 に反映させます。
・このコピーには、必ず関数StrCalc_copy_paraminfo を使用する必要があります。単純な
構造体コピー(構造体全体のコピー)は、呼び出し元が保持しなければならない情報を
潰してしまうので、行ってはなりません。
・この時のコピーは、*pret がエラーであっても行う必要があります。エラーが発生するま
でに、変数が登録される可能性があるためです。
**********************************************************************************/
StrCalc_copy_paraminfo(p_prm1,&prm2);
return 0.0;
}