GUIとserializeの関係
この前、こんなソフト(http://d.hatena.ne.jp/studiokingyo/20060123)
を作っていると書いてみたが、超増強中だったりします。*1
でプログラミングしていると、check boxやbuttomの類のGUIのパーツが増えてきてそのチェック状況等のserialize,deserialize(save load 処理みたいなもの)を記述するのが面倒になってきました。
今回は小さいソフトの予定だったのでWTL7.1あたりを使っているのだがこれはGUIの状態をserializeする機構が付いていないのだ。嗚呼、FOX-toolkitが恋しい。
でも、泣き言といっている場合じゃないんです。
ちょっと考えた結果、以下のような関係で処理を明確化すると頭の中が整理されます。(ってか、冗長だね。)
- GUIのパーツへ状態データをロード(メモリから)
- GUIのパーツから状態データをセーブ(メモリへ)
- GUIのパーツ状態データが入っているメモリからファイルへ
- GUIのパーツ状態データが入っているファイルからメモリへ
で、WTLのGUIのパーツがserializeも含めてカプセル化されていればいいんですけど出来ていないのと*2、別のGUI部分じゃない状態データも含めているのセーブファイル形式の為、上記のような考え方になっています。この一回GUIのパーツから状態データを別の変数に移動する所がいじらしい!!!
もう!!!!WTL改造しちゃおうかしら!!!きぃー!!!(壊)
boost::serializeは外部にWTL用serialize関数を定義するだけでserializeが定義できる機構になっているらしいんですけどね。
嗚呼、boost::serializeを使いたいけどVC6 userなのね。
ってか、簡単に言うと、出力、入力形式が柔軟でVC6にも対応したserializeライブラリが欲しいって事ね。
ああ、なんか今日は壊れているぞ おrz!!
関連:WTLってこんなライブラリらしいぞ http://hpcgi1.nifty.com/Roy_/Program/Program.cgi?mode=one&namber=145&type=144&space=15