C++/CLIのdllを作ってそこからC#を呼ぶ。それだけ。ncbindも問題なく動作します。
サンプルコード
吉里吉里のウィンドウ(左上)とC#のウィンドウ(右下)の間でメッセージのやりとりができます。
吉里吉里でもkwidgetsを利用するとUI含めて結構作れますが、本格的な物ならC#と.NETが使えると便利です。試してないですがVisualBasicやF#, IronPythonなども同じく使えると思います。
吉里吉里とC#のアプリを別々にするとプロセスが分かれて面倒くさかったのが色々解消される・・・・・・といいなあ。
プラグインのソースを拝見しましたが,吉里吉里のプラグインの書き方で少し気になった部分がありましたのでコメントさせていただきます。(C#の方は門外漢なのでコメントできません:)
・コールバックオブジェクトの保持はiTJSDispatch2*ではなくtTJSVariantClosureを使う方が良いです(取得はtTJSVariant::AsObjectClosure)
>iTJSDispatch2*のみだとコンテキストが保持できません
・callback->FuncCall呼び出しのtry-catchでの例外吸収はメモリリークが起こるのでTVPDoTryBlockかTry_iTJSDispatch2_FuncCallを使うのが妥当です
>詳細はexceptiontest/Main.cppのコメントを参照してください
サンプルなので細かい問題はスルーしているのかもしれませんが,一応ご参考までに。
ご指摘ありがとうございます。
コールバックのあたりは分からないまま書いていたのでとても助かりました。
サンプルの方も後ほど直した物に差し替えます。