掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CArchiveで余分な3bytes書き込みを防ぐには? (ID:70121)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
MFC を使う C++ ネイティブアプリケーションで SDI/MDI 形式、ということでおk? 開発環境は VC2003/2005/2008 それとも太古の VC++6 ? っていうかこの手のことは最初に書いてほしいな。違っていると質疑応答全部無駄に終わってしまうので。 やり方ってのはいくつもあって、どれが正しいとか適切とかは状況次第だったりするわけだが 1) CArchive を使って保存・復元する方法 2) CArchive を使わず保存・復元する方法 俺なら 2) を選ぶと思うが 1) でも可能なわけで、その辺はお好きなように。 2) なら C***Doc::OnSaveDocument/OnOpenDocument をオーバーロードして入れ替えればいい。 CArchive を一切使う必要がなくなってむしろ簡単になると思われる。 1) にこだわるならまあそれでもいいけど・・・ でもシリアル化手順で PxM 形式出力してしまったのではスキーマの指定とかできなくなってしまい シリアル化のうまみが失われてしまうと思うのだが。 この場合 PxM 形式の出力には WriteString だけを使うことになる。 int や long を << するとバイナリ出力されて PxM 形式にあわなくなる。 んで俺の手元の VS2005/VC++6 で CArchive::WriteString してみたけど 「それだけならば」ごみなバイトが勝手についたりはしないよ。 MFC ソースレベルでも余計なバイトを勝手に追記してたりはしないこと確認済み。 自分のプログラム中でなにか余計なこと・やってはならないことをしているに1票。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.