結局、昨日頼まれた XML の入出力を行うサンプルは BCB と VC とで別々に作成することにしました。お隣は VC/BCB 両方使うようなので。
で、 BCB の方は TXMLDocument クラスを使うことにしたのですが、これがなぜかうまくいかずにはまる。ファイルに書き出すことはできるのですが、ファイルを読み込んでルート要素 (TXMLDocument.DocumentElement) にアクセスすると死ぬ。これまで何回かやっていることなので非常に不可解で、もう少しで胃が痛くなるところでしたが、デバッガで見てみたらリファレンスカウンタが 0 になっていたので、うーんと唸って _di_IXMLDocument にキャストしてやったらうまくいきました。
疲れたので動いた時点で帰ってきてしまったので、ちゃんと確認していませんが、 _di_IXMLDocument にキャストすると operator _di_IXMLDocument()
が呼ばれて、この中でリファレンスカウンタがあがって云々、みたいな感じになると妄想。一応、明日確認しておこう。
でも書き出しができるのが謎。