C++ がメインの開発言語だと、XML って好きになれないよなぁ、きっと
リフレクションのない言語で XML シリアライズって、汎用的でかつ使いやすいコード書くのはなかなか難しいですよねぇ。と、最近思う。
しばらく悩んでみた結果、いっそのこと C# を使って C++ のソースコード生成する方が楽なんじゃないかという結論に至る。
で、作ったのが以下のプログラム。
http://ufcpp.net/study/csharp/source/GenXmlSerialize.zip
プロジェクト構成概要
ちなみに、XmlLite を使っています。Vista と XP SP3 には標準で入ってる DLL です。XP SP2 の場合、以下の更新プログラムが必要。
http://www.microsoft.com/downloads/details.aspx?FamilyID=d7b5dc81-ad14-4de2-8ad5-8c4a9aab5992&displaylang=ja
あと、CString とか CComPtr とか使いまくりなので、GUI 作るわけじゃないのに MFC をリンクしています。