で、色々と検討した結果、ResEditを使うと、VisualStudioライクなRAD環境で
リソース生成が出来て、且つ、これをリソースDLLに変換できることが分かりました。
ってことで、なでしこのGUI用DLLを作成し、ここから上記のリソースDLLを読み込んで
やれば、なんとかなりそうかなあ…。ただ、この方法にはいくつか問題がありまして…
・リソースDLLと同時に、各リソース(ボタンとか、テキストエリアとか)のIDを定義した
ヘッダファイルを同時に生成し、これをなでしこ用DLLで読み込んだ上でなでしこ側の
スクリプトと共有しないといけない。
・DLL側でGUIを生成したとしても、おそらくWin32のメッセージ処理用キューは
なでしこ(gnako)が持っているメッセージキューと同じになる。これを回避するために
なでしこ用DLL内でスレッドを生成して、そこでメッセージを受ける様にすれば、
「母艦」のメッセージとは区別できるが、メインスレッド(つまりなでしこ本体)との
通信方法は考える必要がある。
・gnakoの場合、立ち上げた時点で「母艦」フォームが表示されてしまっていて、
これを消すとgnako自体消えてしまいそうな気がする。
上記ResEditでリソースを作る方法以外にも、Tcl/Tkを用いてなでしこ/Tkみたいな
ラッパーを作る、wxWidgetsのラッパー、Qtなどなど色々考えたけどやっぱり母艦が
自動で生成されていることで相性がイマイチ。vnakoの方は重そうなので、そもそも
却下、GUI(フォーム)が生成されないcnakoなら…と思ったけど、コマンドラインの
DOS窓が消せない…ってことでいずれも破綻しました( ̄□ ̄;。う~む。
ってこでなでしこのGUI環境をいじる別の方法を考えた分けですが、可能性としては
以下の二つ。
・nako.dllにはインタプリタ本体も入ってそうなので、自分でwnako.exeみたいなのを
作って、無理やりResEdit+リソースDLLに対応してみる。
・Win32は諦めて、別の汎用GUI的なものを目指す。
自分でexe作るのも面倒ですし、そもそもインタープリタ部の使い方も説明はない
ため破綻しそう…ってことで後者を考えます。より汎用的ってことで、ローカル
WEBサーバを用いたブラウザ上でのGUIとの連携を考えることにします。