オブジェクトのシリアル化について – プログラミング – Home

オブジェクトのシリアル化について
 
通知
すべてクリア

[解決済] オブジェクトのシリアル化について


よこ
 よこ
(@よこ)
ゲスト
結合: 23年前
投稿: 3
Topic starter  

皆さんはじめまして。

早速ですが、オブジェクトのシリアル化で息詰まっています。

自分でもいろいろHelpやHP、書籍等で調べまして、C**Docの中の
Serializeの所でファイルへの読み書きができる所までは
わかったので、CArchiveクラスのWriteObjectを使って
ソースコードを変更して、コンパイルは通り(NoErrorで)、
実際にプログラムを実行してみて”名前を付けて保存”を実行すると、
アプリケーションエラーが発生しファイルへデータを保存することができません。
エラーメッセージは、「メモリが”read”になることができませんでした。」(一部抜粋)

あきらかに宣言が足りないと思うのですが、
どの宣言をどこに書けば良いのかがわかりません。

どなたかアドバイスをお願いします。m(_ _)m
OSはWindows2000でVC++6.0を使っています。


引用未解決
トピックタグ
よこ
 よこ
(@よこ)
ゲスト
結合: 23年前
投稿: 3
Topic starter  

ソースコードは以下のようにしました。

void CListDoc::Serialize(CArchive& ar)
{
  if (ar.IsStoring())
  {
    // TODO: この位置に保存用のコードを追加してください。
    ar.WriteObject(m_pData);
  }
  else
  {
    // TODO: この位置に読み込み用のコードを追加してください。
  }
}


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

m_pDataは有効なオブジェクトですか?
恐らくどこかで有効でないオブジェクトを扱おうとしているのだと思います。

ar.WriteObject(m_pData);
にブレークポイントをおいて,ステップ実行してみてはどうでしょう。
#落ちた場所からコールバックを遡った方が効率がよいかも。


返信引用
よこ
 よこ
(@よこ)
ゲスト
結合: 23年前
投稿: 3
Topic starter  

YuOさんありがとうございます。

m_pDataを有効なオブジェクトにしましたら
ファイルへ出力するとこができました。

ありがとうございました。

PS
使用上の注意をよく読まずに投稿してしまい、
マルチポストをしてしまいました。
この場をお借りしまして、管理者ならびに
違う掲示板にて、同じ内容の質問を
ご覧になった方々へお詫び致します。
すいませんでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました