hmLoadCLR (秀丸マクロ用 マネージdll loader)

  • 「C#」で作成した「マネージdll」を、
    秀丸マクロで利用するためのdllとなります。

    もちろん「C#のdll」だけではなく、「C++/CLI・VB.net・F#・JScript.net」などで作成したdllでも大丈夫です。

  • ダウンロード

    hmLoadCLR.zipファイル。ver 1.481
    └更新日 2017/04/04
  • 動作環境

    • 秀丸

      秀丸エディタ ver8.66以上

    • Microsoft VC++ 再頒布可能パッケージ

      Visual Studio 2013 C++ ランタイム
      x86版をインストールしたことが無い方はインストールしてください。
      お手持ちのOSが64bitか32bitかには関わりなく、x86版のインストールが必要です。

    • Microsoft .NET

      .NET Framework 4.0以上。

    • 秀丸エディタ 64bit版について

      秀丸エディタ64bit版をご利用の方は、hmLoadCLR_x64.zipをダウンロードし、hmLoadCLR.dllを差し替えてください。
      (又、この場合は、Microsoft VC++ 再頒布可能パッケージは、64bit版をインストールしてください。)

    • 秀丸エディタ ストアアプリ版について

      hmLoadCLRはストアアプリ版でも利用することが出来ます。詳細は左メニューのストアアプリ版での利用などを参照してください。

  • インストール

    • hmLoadCLR.zipを解凍する。
    • 「hmLoadCLR.dllを秀丸エディタのディレクトリ内(hidemaru.exeと同じ場所)へと コピーする。
      (原則的には、hidemaru.exeと同じ場所である必要があります。これは.NET FrameWorkのdllを動作させる仕組みに拠るためです。)
  • 秀丸でマネージdllを使うメリット

    • CPU非依存性

      32bitと64bitでプログラムを別々に作成する、などといったバカバカしいことから解放されます。
      プログラムが少ないうちはいいですが、多くなったり、他のモジュールを数多く利用するようになると、
      32bitと64bitでプログラムを分かれることは非常に足を引っ張ります。
      そういったことから解放されます。

    • メンテナンス性

      ご存知の通り、ほとんどすべてのことにおいて、ネイティブと.NET Frameworkでは、
      .NET Frameworkを利用したソースの方が簡単で、ソースがはるかに短く、難易度が低く、見通しが良いものとなります。
      メンテナンス性が非常に高くなります。

    • 十分な実行速度

      C#で作成された.dllはC++に比べると1/2~1/3ほどの速度しか出ませんが、
      エディタ用途のdllとしては十分に高速だと言えるでしょう。

    • 高い資産性

      マネージ.dllの開発速度やわかりやすさは、ネイティブC++では決して得られないものです。
      dll間で「複雑な型」の変数をそのまま簡単に渡しあえる、参照しあえるのも、計り知れないメリットです。

  • hmLoadCLRとhmPyと比較・違い

    hmLoadCLRでもhmPyでも、どちらでも「C#・C++/CLI・VB.net・F#・JScript.net」のマネージdllを読み込むことが出来ます。
    では、両者はどのような役割の違いがあるのでしょうか。比較してみましょう。

    • 最初の読み込み時間

      hmLoadCLRは比較的短い時間で最初の読み込みを終えることが出来ますが、
      hmPyは最初の読み込みには少し時間がかかります。

    • 機能

      hmPyはIronPythonをまるまる搭載していますので、 非常に豊富な機能を持っており、
      クラス機構や.NETのクラスライブラリとの相性の良さなど、
      .NET Frameworkとの親和性はスクリプト言語の中では他の追随を許しません。

      一方、hmLoadCLRは言語性能は、
      Luaというシンプルな言語のみを搭載しています。

    • まとめ

      このような性質から、hmLoadCLRでは、

      • hmLoadCLR層では複雑なことはしない
      • hmLoadCLR層はあくまでも「秀丸マクロ」と「マネージdll」の間の値の橋渡しが中心、
        処理のほとんどは「マネージdll」と「秀丸マクロ」でやる。

      といった使用シーンで使うのに向いています。

      一方、マネージdll内のクラスをスクリプト層で継承したり、長々とスクリプトを記述したり、
      ある程度複雑な構造を「スクリプト層で直接」扱うのであれば、hmLoadCLRよりhmPyの方が向いています。

  • ライセンス

    • hmLoadCLR

      hmLoadCLRは、Apache License 2.0となります。

      ソースはgithubにあります。

    • Neo.Lua

      hmLoadCLRはInternalアセンブリとしてNeo.Luaが利用されています。
      詳細は、https://neolua.codeplex.com/を見てください。