Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

BookSync, rewrited.

 先月末から拙作BookSyncのGUI部分をMFCを使わずに書き直していたのがようやく形になり、今までのMFCを使うバージョンに追いついたので、自分のWebページに置いておいた。


 今までも、MFCを使ったダイアログベースの開発には次のような難点があり、MFCを使わずに書き換えたいなと思ってはいた。

  • Visual Studio 2010にMFCがつくStandard版がないので、MFCを使おうとすると金銭的に高くつく。
  • ダイアログベースプログラムだとウインドウが表示される前か、ウインドウ上で何らかの操作が行われたときでないと処理を走らせることができないので、自動処理機能を入れるのが難しい。

 それでも、今までは画面上にコントロールを置き、それに対してIDEからハンドラーを書くというプログラミンスタイルが楽だったのと、時間を掛けてまで書き換えるほど直近で困っているわけではないということもあり、MFCベースで続けてきた。だが、今年(2011年)4月の更新で使っているVisual Studio 2008のMFCが肥大化したということと、GWにまとまった休みが取れたけど親戚の手伝いに行くなどといったこともあって中途半端に時間ができたということがきっかけで書き換えを行うことになった。

 書き換えの方針としては、基本構造を大きく変えずにダイアログベースプログラムから一般のプログラムに変え、コントロールやデータの扱いについてはMFCに似た感じの薄いラッパを作ってこれをベースにコードを書くことにした。MFCを使ってたといってもイベントハンドラとクラスと画面上のコントロールの情報を結びつけるDDX(Dialog Data Exchange)を使っている程度だったので、これで時間を短縮できると思っていた。それでも、9年間いじり続けてきただけあって、結構時間がかかったので、最後のほうはWin32 APIに対するラッパを作らずに、ウインドウハンドルを取りだしてWin32 APIを直書きする場面が多くなった。

 これで、今後の機能拡張に向けての下地ができあがったのでこれからは機能拡張に舵を取ろうと思う。
ちなみに、プログラムサイズは楽するためにC++を活用したことと、SQLite3が大部分を占めるということで4月の更新前のMFCをスタティックリンクしたバージョンよりは減ったが見違えるほどとまでは行かない。

 あくまで、MFC/Visual Studio上位版からの自由、プログラムの流れの自由を得るための書き換えである。