|
>実行サンプルを載せておきます。
>
>> execmacroで上手く変数を引き継ぐ方法はないかな?
> 私も欲しいですが、今のところ EXZS さんの方法か、DLL 等でより広域的に利用可
>能なグローバル変数を使うしかないと思います。
>>因みに、以前から要望はでています。
> http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/t98.html
>にて 00961 のスレッドを御覧ください。
>
>※田楽DLLのグローバル変数をマクロ間で使う
>---------- HENV1.mac 親
>// 元ウィンドウで DLL をロード
>loaddll hidemarudir + "\\DengakuDLL.dll";
>// グローバル変数の定義(環境変数扱いをするなら@を付ける)
>if (dllfunc("SETVAR","arg0","this is arg 0.") == 0 ||
> dllfunc("SETVAR","arg1","this is arg 1.") == 0 ||
> dllfunc("SETVAR","arg2","this is arg 2.") == 0) {
> message "変数の定義に失敗!!";
> endmacro;
>}
>// 別マクロに実行継続
>execmacro "HENV2.mac"; // <<<<<<<<<<< 子プロセス?
>// 返値を表示
>menu dllfuncstr("GETVAR","arg9" );
>freedll;// おしまい
>
>---------- HENV2.mac 子
>// 引数扱いのグローバル変数を読み込む
>##a = 0;
>while (##a < 3) {
> $arg[##a] = dllfuncstr("GETVAR","arg" + str(##a));
> menu $arg[##a];
> ##a = ##a + 1;
>}
>// 辺値をセット
>#n =dllfunc("SETVAR","arg9","this is arg 9.");// 子でloadしなくとも使える
>-------------------------------------------------
>
>関連:
>秀丸の環境変数の読み取りは使えるでしょうか?GetENV
>コマンドラインから起動するに場合しか使えないですが。
ENCODINGSHIFTJISさん、ありがとうございます。
参考にさせていただきます。
|
|