概要
C#からIronPythonに変換する方法等が記載されています。
まず、本当にIronPythonにする必要があるか?
hmPy/IronPythonは、C#で作成された.dllをそのまま実行可能です。
もちろんC#で定義されたクラスをIronPythonで継承して利用することも可能です。
「C#」は
- 「Visual Studio」による強力なサポートと開発効率
- 十分に高速な実行速度
- 美しくも柔軟性のある文法
と非常に高バランスで均衡がとれた言語です。
IronPythonに変換する前に、C#でそのまま作った方が良いのではないか?
ということを検討することをお勧めします
当管理人としては、基本的な指針としては、
- コンポーネントといえる「部品」
- コンポーネントを利用した「基本制御」
ぐらいまではC#で作成し、
- テキストに出した方が柔軟性が確保出来るところ
- 秀丸マクロと通信する必要がある変数
だけIronPythonにする、というのが理想的ではないかと考えています。
SharpDevelop 4.4でC#からIronPythonに変換できる
C#で制作したソースは、「C#文法」に「対応する文法」が「IronPython文法」に存在するものに関してなら、
SharpDevelop 4.4で機械的にIronPythonへと変換可能です。
これはC#での制作経験は豊富だが、IronPythonの経験は乏しいといった人に、
向いた変換手法と言えるでしょう。
(日本国内でプログラムを記述する人は大半がIronPythonよりC#の方が経験があると思われます)
変換時に、「IronPython.Modules.dll v 2.7.5が無い」旨の英語のエラーが出る
IronPython 2.7.6以降をインストールしている場合は、SharpDevelop v4.4が正しく認識できないため、
エラーが発生します。
以下の手順で修正することが出来ます。
- sharpdevelopのフォルダの「AddIns\BackendBindings\PythonBinding」の中にある、
「IronPython.dll」と「IronPython.Modules.dll」を、IronPythonのver2.7.5のものへと差し替える。
(IronPython 2.7.5 Binaries などを解凍し、その中にある「IronPython.dllとIronPython.Modules.dll」で上書きしてしまうということです。
- 差し替えるのは上記2つのファイルだけですので注意してください。
- SharpDevelop v4.4の変換機能は、IronPython 2.7.4と2.7.5までに対応しており、
v2.7.6以降には対応していないため、このような措置が必要となります。