QtとMFC Serialize互換について
MFCからQtを移植する再、問題になるのはファイル関係です。
MFCとQt、Serializeフィイルの互換性を維持するには、ちょとした工夫が必要です。
*Little Endianにします。 e.g. ar.setByteOrder(QDataStream::LittleEndian);
*CStringとQString。 MFC CStringは長さをかなり持てる機能があります。 その部分を読み込んでQStringへ入れるにはMFCのソースを参考にすると良いでしょう。 通常はQStringの最大値まで使うことはないのでコンバーターを作成すれば互換性を維持できます。
*COleDateTime(CTime)とQDateTime これもコンバーターを作成することにより解決可能です。
上記などを一気に移植するにはQDataStreamを継承したクラスがあると便利です。 CArchiveクラスのようにIsStore()などを作成することにより、もとのソースに対して少ない変更で移行可能です。 この継承したクラスにはEndianの自動変更、QString、QByteArrayやQStringListなどのインターフェースを作成すると使いかっても良くなります。
コメント
コメントを投稿