継続する変数 static 変数

概要

hm.NETでは値を継続して使っていくことがとても自然です。
なぜなら一度読み込まれたdllは常駐しているという性質を活かせるからです。

staticなフィールド

  • C#側のソース

    staticな変数は値が継続しますので以下のようにするだけで
    1つのプロセス内でマクロを実行する度にカウンターが増加していきます。

    HmTestClass04.dllとしてコンパイルのこと
    using System;
    
    namespace HmTestClass04
    {
        public class Class4
        {
            static int Counter = 0;
    
            public static IntPtr counter()
            {
                Counter++;
                System.Diagnostics.Trace.WriteLine($"{Counter}");
    
                return (IntPtr)1;
            }
        }
    }
    
  • 秀丸マクロ側のソース

    test01.macなどと適当に名前を付ける
    #HMNET = loaddll( hidemarudir + @"\hm.NET.dll" );
    
    #result1 = dllfuncw( #HMNET, "CallMethod", currentmacrodirectory + @"\HmTestClass04.dll", "HmTestClass04.Class4", "counter" );
    

    とあるプロセスに対して(とある秀丸マクロのタブに対して)このマクロを実行する度に。
    カウンターが増えていくことがデバッグモニターで確認出来るかと思います。