PsycleWTLのクラス整理はほっといて、.NET Frameworkとの連携を考えています。
考え方としては、
1.ネイティブの部分はネイティブで動かす。
・動作が遅いと問題が生じるところ
・いままで作った部分
2.UIは.NET言語(C#)で作りたい。
・作るのが簡単
・UIに関してはネイティブ、.NETどっちに転んでもよいようなつくりにする。
3.プラグインは.NET言語でも作成できるようインターフェースを作り直す
・もちろん、既存のプラグインも動作させる。
1-3を実現させるために、既存のPsycleWTLの構成を変更しました。
プロジェクトを、マネージ拡張と、ネイティブスタティックライブラリに分割しました。
ネイティブコードで動かしたいところは、ネイティブのスタティックライブラリに入れます。マネージ拡張には.ネイティブとNETとの橋渡しコードを構築します。
こういうことをしたいときは#pragma unmanagedでコントロールするんですが、既存の関数の頭に#pragma unmanagedを入れていくのが面倒なのでこうしました。
しかし、MC++は面白いです。ゲテモノコードが書けます。