MFC オリジナルDLLからエクスポートしたビュークラスを CMultiDocTemplate で登録すると Assert Failed! が出る
環境はVisualStudio2005、MDIプロジェクトと拡張DLLプロジェクトを1つのソリューションに作成しています。
MDIアプリを作成していますが InitInstance() 関数内の
CMultiDocTemplateの引数 RUNTIME_CLASS() 実行時にAssert Failed!が出ます。
CMultiDocTemplate に登録するビュークラスはオリジナルの拡張DLL内でCFormViewクラスから派生させたクラスです。
特に変わったことをしている訳ではなく、ほとんどウィザードがソースを吐いた状態のままです。
"COriginalView" をデフォルトの "CMyView" にするとエラーは出ません。
また、"COriginalView" もコントロールを1ヶ置いてビューフォームとクラスを作成し、
AFX_EXT_CLASS でエクスポートして参照できています。
また、MDI側でフォームとクラスを作成しそれを使用した場合はエラーは出ません。
ドキュメント/ビューアーキテクチャの理解が足りない為起きている問題だと思います。
宜しくお願い致します。
--- 詳細 ------------------------------------------------
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CDllView)); ←これ実行時に Assert が出る
AddDocTemplate(pDocTemplate);
---------------------------------------------------------
お礼
回答いただきありがとうございます。 「Ctrl+Tab」で切替わらないため、 適当なショートカットを作成し、MDINext()を実行することで対処しました。