MFC アプリケーションでクラスをシリアル化解除すると CArchiveException 例外が発生

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
ドキュメントを開くと、CArhiveException 例外が発生します。デバッグ ビルドでは、以下のトレース メッセージが表示されることがあります。
CArchive exception: badClass.
原因
Microsoft Foundation Classe (MFC) は、以下の性質の MFC 実行可能ファイルでクラスを使用する場合に、シリアル化解除中に派生クラスのオブジェクトを動的に作成できません。
  • そのファイルが他のクラスから派生している。
  • そのファイルが独立した DLL (MFC 拡張 DLL) に実装されている。
  • そのファイルで IMPLEMENT_SERIAL マクロが使用されている。
IMPLEMENT_SERIAL マクロでは、モジュール状態のクラスのリンク リストに CRuntimeClass 呼び出しを追加してから初期化しますが、このときリンク リストが破損します。
解決方法
マイクロソフトでは、現在この問題を修正する修正プログラムを提供中ですが、修正プログラムはこの資料に記載された問題のみを修正することを目的としており、障害があったコンピュータに対してのみ適用することを推奨します。この修正プログラムは、今後さらにテストを受ける場合があります。この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次の Microsoft Visual Studio .NET service pack がリリースされるまで待つことを推奨します。



修正プログラム (日本語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
   日付           時刻    サイズ   ファイル名   --------------------------------------   20-May-2002   22:45   55,312  Afx.h				
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 322621 (最終更新日 2002-10-16) をもとに作成したものです。
プロパティ

文書番号:322621 - 最終更新日: 02/07/2014 01:55:38 - リビジョン: 1.0

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbbug kbfix kbqfe kbvsnetpresp1fix KB322621
フィードバック