マクロ関数の呼び出しNo.23367
ダヴィンチ1958 さん 05/06/23 12:27
 
ダヴィンチ@ユーザーです。

最近作ったマクロの動作テスト中に一部妙な動作をします。
自分で定義した関数なのですが、全処理中で1度しか呼び出していないのに、2回呼
び出されます。
その関数の最初にだけmessage文を入れているので確認できました。

この関数の1回目の呼び出しでは、文字引数を1つだけ指定しています。
1回目は、正しく受け取れますが、2回目の呼び出しでは
NULLになっています。
とりあえず回避策として、引数の値がNULLの時は
抜けるようにしています。

どこかのコードにマクロのプログラムカウンターを
破壊しているのでしょうか?

助けて下さい。

必要があればそのマクロを添付致します。

どうぞ宜しくお願いします。

turukame v4.17b6
OS:Windows 2000, XP SP2→両方で再現します。

[ ]
RE:23367 マクロ関数の呼び出しNo.23368
capa さん 05/06/23 14:21
 
capa%鶴亀ユーザです。

関数の前に endmacro がないだけなのでは?
ともかくソースの添付がないと分かりようがないと思いますけど。

[ ]
RE:23368 マクロ関数の呼び出しNo.23369
ダヴィンチ1958 さん 05/06/23 15:02
 
ダヴィンチ@ユーザーです。

capaさんにご指摘された事をヒントに
問題が解決しました。

問題の関数を呼び出している側の
最終行にreturn文がありませんでした。
面目ない。

下記のような順番で関数の定義をしていて
ConditionRunの最終行にうっかりreturn文を忘れて
いました。
いつのまにかC言語で記述しておりました。

ConditionRun:
{
   :
   call SearchCondition $$condlist;
}

SearchCondition:
{
   :
   return 0;
}

あーすっきりした。^^;

>
> From: capa
>  <54480xxxxxxxxxxxxxx@maruo.co.jp>
> Date: 2005/06/23 木 午後 02:21:28 JST
> To: xxxxxxxxxxxxxx@maruo.co.jp
> Subject: hidesoft.8:23368| RE 23367 マクロ関数の呼び出し
>
> capa%鶴亀ユーザです。
>
> 関数の前に endmacro がないだけなのでは?
> ともかくソースの添付がないと分かりようがないと思いますけど。
>

[ ]
RE:23368 マクロ関数の呼び出しNo.23370
ダヴィンチ1958 さん 05/06/23 22:06
 

2005/06/23(木) 22:08:23

こんにちは、capaさん

ダヴィンチ@ユーザーです。

capaさん、ご指摘ありがとうございました。
お礼が大変遅くなり失礼致しました。

/*
** タイトル:『hidesoft.8:23368| RE 23367 マクロ関数の呼び出し』
** 発信日:2005年06月23日(木) 14:21:28
** 発信者:capaさん
*/
>capa%鶴亀ユーザです。
>
>関数の前に endmacro がないだけなのでは?
>ともかくソースの添付がないと分かりようがないと思いますけど。

--
メーラー: TuruKame 4.17beta8 (WinNT,500)
OS: Windows2000 SP4

[ ]