秀丸エディタx64版で、数値のサイズを64bitにするには (秀丸v8.98以降)

概要

秀丸はx86版だと数値が32bit、x64版だと数値が64bitですが、
COMでは、引数などで渡ってくる数値の値が、「x64版でも数値が32bitになっています」。
これを解消し、x64版の数値を64bitとしてやりとりするには以下のように記述する必要性があります。

整数の引数の型は、intでもlongでも受け取れるように、longに統一しましょう。
(IntPtrやnintは「秀丸から呼び出すCOMメソッドの数値の引数の型」としては使えないので注意してください)

x64に対応するインターフェイス

public bool X64MACRO() { true; }

を実装します。

  • C#側のソース

    MyTestForm.cs
    using System;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    using HmNetCOM;
    
    namespace NET5COMServer
    {
        [ComVisible(true)]
        [Guid("C144B4C1-27CB-401F-ABE8-55378564E18D")]
        public class NET5COMServer
        {
            public bool X64MACRO()
            {
                return true;
            }
    
            public string str_add(string a, string b)
            {
                return a + b;
            }
    
            public long int_add(long a, long b)
            {
                return a + b;
            }
        }
    }