hmLN (秀丸マクロ用 .NET Framework ライブラリ via Lua)
Lua言語を用いて、「C#」で作成した「マネージdll」を、
秀丸マクロで利用するためのdllとなります。
もちろん「C#のdll」だけではなく、「C++/CLI・VB.net・F#・JScript.net」などで作成したdllでも大丈夫です。
ダウンロード
動作環境
-
秀丸
秀丸エディタ ver8.73以上
-
Microsoft VC++ 再頒布可能パッケージ
Visual Studio 2017 C++ ランタイム
x86版をインストールしたことが無い方はインストールしてください。
お手持ちのOSが64bitか32bitかには関わりなく、x86版のインストールが必要です。
-
Microsoft .NET
.NET Framework 4.5以上。
-
秀丸エディタ 64bit版について
秀丸エディタ64bit版をご利用の方は、hmLN_x64.zipをダウンロードし、hmLN.dllを差し替えてください。
(又、この場合は、Microsoft VC++ 再頒布可能パッケージは、64bit版をインストールしてください。)
-
秀丸エディタ ストアアプリ版について
hmLNはストアアプリ版でも利用することが出来ます。詳細は左メニューのストアアプリ版での利用などを参照してください。
インストール
- hmLN.zipを解凍する。
-
「hmLN.dllを秀丸エディタのディレクトリ内(hidemaru.exeと同じ場所)へと コピーする。
(原則的には、hidemaru.exeと同じ場所である必要があります。これは.NET FrameWorkのdllを動作させる仕組みに拠るためです。)
秀丸でマネージdllを使うメリット
-
CPU非依存性
32bitと64bitでプログラムを別々に作成する、などといったバカバカしいことから解放されます。
プログラムが少ないうちはいいですが、多くなったり、他のモジュールを数多く利用するようになると、
32bitと64bitでプログラムを分かれることは非常に足を引っ張ります。
そういったことから解放されます。
-
メンテナンス性
ご存知の通り、ほとんどすべてのことにおいて、ネイティブと.NET Frameworkでは、
.NET Frameworkを利用したソースの方が簡単で、ソースがはるかに短く、難易度が低く、見通しが良いものとなります。
メンテナンス性が非常に高くなります。
-
十分な実行速度
C#で作成された.dllはC++の半分~7割程度の速度しか出ませんが、
エディタ用途のdllとしては十分に高速だと言えるでしょう。
(ちなみに秀丸マクロは、C++の1/500ほどの速度しかありません)
-
高い資産性
マネージ.dllの開発速度やわかりやすさは、ネイティブC++では決して得られないものです。
dll間で「複雑な型」の変数をそのまま簡単に渡しあえる、参照しあえるのも、計り知れないメリットです。
hmLNとhmPyと比較・違い
hmLNでもhmPyでも、どちらでも「C#・C++/CLI・VB.net・F#・JScript.net」のマネージdllを読み込むことが出来ます。
では、両者はどのような役割の違いがあるのでしょうか。比較してみましょう。
-
最初の読み込み時間
hmLNは比較的短い時間で最初の読み込みを終えることが出来ますが、
hmPyは最初の読み込みには少し時間がかかります。
-
機能
hmPyはIronPythonをまるまる搭載していますので、 非常に豊富な機能を持っており、
クラス機構や.NETのクラスライブラリとの相性の良さなど、
.NET Frameworkとの親和性はスクリプト言語の中では他の追随を許しません。
一方、hmLNは言語性能は、
Luaというシンプルな言語のみを搭載しています。
-
まとめ
このような性質から、hmLNでは、
- hmLN層では複雑なことはしない
-
hmLN層はあくまでも「秀丸マクロ」と「マネージdll」の間の値の橋渡しが中心、
処理のほとんどは「マネージdll」と「秀丸マクロ」でやる。
といった使用シーンで使うのに向いています。
一方、マネージdll内のクラスをスクリプト層で継承したり、長々とスクリプトを記述したり、
ある程度複雑な構造を「スクリプト層で直接」扱うのであれば、hmLNよりhmPyの方が向いています。