HmNetPInvoke

概要

秀丸本体から提供されているネイティブ関数を、C#用にP/Invoke、そして、ラップしたものとなります。
「たった1つ、もしくは2つの cs ファイル」で使える、といったスタンスとなります。

用途としては、hm.NETが直接はサポートしていない「.NET5」や「.NET Core」の.dll、
あるいは、「COM経由」や「DllExport.bat経由」の.dllにてお手軽に秀丸本体の関数を利用する、
といった想定となります。

また、提供されているAPIの範囲においては、hm.NETと同じ記述になるように構成されています。

わざとPInvokeしていない関数や、趣旨を少し変えている関数も 秀丸本体からは提供されていても、
  • 状態変化を監視する類のものではなく、「マクロ変数を渡せばいいだけのもの」
  • .NETやC#の「巨大で実績のあるライブラリ」を使えばよく、わざわざ秀丸提供のものを使う必要なし
と判断したものは実装していません。

ダウンロード

更新日 2021/03/30
HmNetPInvoke ver 1.831

秀丸

秀丸エディタ ver8.77以上 (v8.97以上推奨)

「インプロセスのdll」もしくは「インプロセスのexe」のみでの動作となります。
  └ (秀丸と同じプロセス空間で秀丸から呼び出されたモジュール)

Visual Studio 2017以上

C# ver7.3以上、Visual Studio 2017以上を環境対象としています。

対象プラットフォーム

以下の .NET と 秀丸での動作が想定されています。

  • .NET 6.0 (秀丸 v8.97以上)
  • .NET 5.0 (秀丸 v8.97以上)
  • .NET Framework 4.5~4.8 (4.7~4.8推奨) (秀丸 v8.77以上)
  • .NET Core 3.1 (秀丸 v8.97以上)

使い方は主に2系統

  • 「HmNetInvoke.cs」をあなたが制作しているC#プロジェクトに取り込んで利用

  • この使い方が基本的には想定されています。
    「HmNetInvoke.cs」ファイル単体をあなたのC#プロジェクトへとコピペする形で良いでしょう。
    秀丸本体から提供されている関数が、すでにC#で使いやすいようラップされているため、
    「自身で実装する手間を省きつつ、第3者のdllへの依存も特になし」といった形を実現できます。

  • 「HmNetInvoke.dll」を作成し、それを利用する。

  • この使い方も一応想定されています。
    HmNetInvoke.slnを開き、コンパイルし、「HmNetInvoke.dll」として利用することも可能ではあります。

    ポータブルクラスライブラリとなる「.NET Standard 2.0」のdllを使えば、先述のどの.NET プラットフォームでも動作します。

    この使い方は、hm.NETの小型版のような利用方法ですので、hm.NETを使ったほうがよいのではないか? といったことも検討してください、
    hm.NETとの差別化としては、hmNETが、.NET Framework 4.xのみを動作対象としているのに比べ、
    HmNetInvokeは幅広い.NET系列で動作するという点でしょう。