ExecMacroとclosehidemaruforcedについてNo.07328
YK さん 02/05/24 12:11
 
こんにちは。お世話になります。
TuruKame 1.93 (WinNT,400)の環境で、転送メールのテンプレートに、
$(ExecMacro,"test7.mac")$-を設定しておき、

以下のマクロを本体から、実行してみたら、アプリケーションエラーで落ちて
しまいました。へんな記述になっているのでしょうか。
それとも、制限事項でしょうか。
ご指摘いただけたら幸いです。よろしくお願いします。


//--本体から実行------------------------------------------------------
loaddll "TKInfo.dll";

#n = dllfunc( "MakeForward" );

//save;
//exit;
//endmacro;     //ここまでなら、OK。

    save;
    #handle = hidemaruhandle(0);
    #n = dllfunc( "SetMainWndTop" );
    if( #n == 0 ) {
        message "鶴亀本体をアクティブにできませんでした。";
        endmacro;
    }

closehidemaruforced(#handle);   //ここで落ちてようです。

endmacro;

//--テンプレートから実行----------------------------------------------
// test7.mac
message "test7.mac";
endmacro;

[ ]
RE:07328 ExecMacroとclosehidemaruforcedについてNo.07334
かわした さん 02/05/24 13:34
 
かわしたです。とりあえず気がついたところだけ。

>closehidemaruforced(#handle);   //ここで落ちてようです。

秀丸マクロヘルプにも書いてますけど、

closehidemaruforced #handle;

が正式な使い方でしょう。

[ ]
RE:07334 ExecMacroとclosehidemaruforcedについてNo.07337
たけのこ さん 02/05/24 13:52
 
たけのこです。

>>closehidemaruforced(#handle);   //ここで落ちてようです。
>
>closehidemaruforced #handle;

この場合は、カッコは四則演算の優先度を変えるだけでは(単項だから意味がな
いですが)?

[ ]
RE:07328 ExecMacroとclosehidemaruforcedについてNo.07339
秀まるお2 さん 02/05/24 13:55
 
 調べてみたら、テンプレートの$(ExecMacro)で指定されたマクロを多重実行しよう
としてエラーになってました。

 そもそも、MakeForward関数などではエディタ起動時のマクロを自動実行しない作
りなんですが、テンプレートからExecMacroされることを想定してませんでした。

 とりあえず、テンプレートからのExecMacroを無効にすれば回避できますが、それ
でいいですよね。

 テンプレートからExecMacroが指定された場合にそのマクロ名を知る方法が無いで
すけど。

[ ]
RE:07339 ExecMacroとclosehidemaruforcedについてNo.07340
秀まるお2 さん 02/05/24 14:09
 
> テンプレートからExecMacroが指定された場合にそのマクロ名を知る方法が無いで
>すけど。

 現状のNewEditorMacro関数を仕様変更します。

 − テンプレートからExecMacro指定された場合はそのマクロ名。
 − そうでなければ「マクロ登録側で指定されたマクロ名。

 を返すようにします。

[ ]
RE:07328 ExecMacroとclosehidemaruforcedについてNo.07356
YK さん 02/05/25 07:58
 
かわしたさん、たけのこさん、こんにちは。

コメントいただき有り難うございます。
ご指摘の内容、検索によって知りまして、マクロファイルの方は、訂正してい
たのですが、投稿する際に、訂正していない古いファイルを貼り付けてしまい
ました。既出にも関わらず、誤った記述での投稿、大変失礼いたしました。


秀まるお2さん、こんにちは。

>とりあえず、テンプレートからのExecMacroを無効にすれば回避できますが、それ
>でいいですよね。

>現状のNewEditorMacro関数を仕様変更します。

もちろん、お任せいたします。
個人で使うだけですので「>とりあえず」の方だけ対応となっても問題はありません。

ありがとうございました。よろしくお願いいたします。


[ ]