• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++でMFCアプリ作成中です。)

VC++でMFCアプリ作成中:最近使ったファイルを選択して開く方法に関するエラー

このQ&Aのポイント
  • VC++でMFCアプリを作成中ですが、「最近使ったファイル」を選択した際にエラーが発生します。
  • エラー箇所は★で示されており、デバッグ中に『Debug Assertion Failed!』というメッセージが表示されます。
  • 原因を特定するために、指定したプログラムでファイルを開く処理をデバッグしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ん~ MFCのDOC/VIEWを使うのであればファイルの読み込みをViewクラスでやるのはお勧めできません 質問の直接の原因は Viewクラスは作っているがViewと関連のあるDocumentクラスが無いので GetDocumentがNULLを返してくるためにアサーションが発生します OpenDocumentFileからの戻り値の CDocument* を お使いのCDocumentからの派生クラスにキャストしてやれば Documentに関する部分は操作可能になります CHogeDocument* pDoc = NULL; if ((pDoc = (CHogeDocument*)OpenDocumentFile((*m_pRecentFileList)[nIndex])) == NULL){ といった具合にif文を書き換えてやります このif文が成り立つのは Documentクラスを生成できなかった場合です 何らかの原因でドキュメント内容が読み込めなかったとか サイズ0のファイルを指定したとか ドキュメント内容の取得は CHogeDocumentクラスの Serializeルーチンで読み込むようにしましょう … 書き込み時もSerializeを使います 読み込み後Viewクラスで何かやりたいのであれば ViewクラスのOnInitialUpdateなどが適当かとおもいます

関連するQ&A