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などのインターフェースを作成すると使いかっても良くなります。









コメント

このブログの人気の投稿

日本でコンピュータサイエンスを学ぶ難しさ

How to preview nif file on the ubuntu.