下記URLのサンプルコード
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_M …
を参考に、VC++2005(MFC)にてMDIアプリケーションを作成しています。
正常に動作すれば、プログラム起動時に2つのウィンドウが表示されるはずですが、
問題箇所「DEBUG!!!」にて、
「MDITest1.exe の 0x00416420 でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。」
といったエラーが発生し、実行が出来ない状態です。
下記にソースコードを記載します。ベタ貼りで申し訳ありません。。
「☆☆☆追加☆☆☆」で囲まれた箇所が上記URL解説を元に自分で追加した箇所で、
それ以外はスケルトンなので、基本的にサンプルコードと同じです。
解決策ご存知の方おられましたら、お手数ですがご教授お願い致します。
【呼び出し元クラス:CMDITest1App】
BOOL CMDITest1App::InitInstance(){
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
SetRegistryKey(_T("アプリケーション ウィザードで生成されたローカル アプリケーション"));
LoadStdProfileSettings(4); // 標準の INI ファイルのオプションをロードします (MRU を含む)
// アプリケーション用のドキュメント テンプレートを登録します。ドキュメント テンプレート
// はドキュメント、フレーム ウィンドウとビューを結合するために機能します。
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MDITest1TYPE,
RUNTIME_CLASS(CMDITest1Doc),
RUNTIME_CLASS(CChildFrame), // カスタム MDI 子フレーム
RUNTIME_CLASS(CMDITest1View));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
//☆☆☆追加☆☆☆
CMultiDocTemplate* pDocTemplate2;
pDocTemplate2 = new CMultiDocTemplate(IDR_MDITest1TYPE2,
RUNTIME_CLASS(CMDITest1Doc),
RUNTIME_CLASS(CChildFrame), // カスタム MDI 子フレーム
RUNTIME_CLASS(CMDITest1View2));
if (!pDocTemplate2)
return FALSE;
AddDocTemplate(pDocTemplate2);
//☆☆☆追加☆☆☆
// メイン MDI フレーム ウィンドウを作成します。
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}
m_pMainWnd = pMainFrame;
// 接尾辞が存在する場合にのみ DragAcceptFiles を呼び出します。
// MDI アプリケーションでは、この呼び出しは、m_pMainWnd を設定した直後に発生しなければなりません。
//☆☆☆追加☆☆☆
pMainFrame->OpenView(pDocTemplate2);
//☆☆☆追加☆☆☆
// DDE、file open など標準のシェル コマンドのコマンド ラインを解析します。
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// コマンド ラインで指定されたディスパッチ コマンドです。アプリケーションが
// /RegServer、/Register、/Unregserver または /Unregister で起動された場合、False を返します。
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// メイン ウィンドウが初期化されたので、表示と更新を行います。
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}
【呼び出し先クラス:CMainFrame】※問題箇所有り
void CMainFrame::OpenView(CDocTemplate *pTemplate){
CDocument* pDoc = MDIGetActive()->GetActiveDocument(); //DEBUG!!!
CMDIChildWnd* pNewFrame = (CMDIChildWnd*)pTemplate->CreateNewFrame(pDoc, NULL);
if( pNewFrame )
pTemplate->InitialUpdateFrame(pNewFrame, pDoc);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ラジオボタンの初期指定
-
検索の画面がでなくなってしま...
-
Vba LongPtrについて教えてくだ...
-
ExcelのBOOKが消えた!
-
VBA .Value=.Value ?
-
DellノートPC購入で悩んでいま...
-
他アプリケーション’(ウィンド...
-
最大化と最小化ボタン
-
ウィンドウのサイズ変更について
-
Excelの上下を固定したい
-
C++のクラス内で、ウインドウプ...
-
VisualC++ サブウインドウの作り方
-
MFCアプリケーションでアイコン...
-
VBで外部プログラムを位置のみ...
-
UWSCで特定のChromeのタブをア...
-
ウィンドウにキー送信で ENTER ...
-
[VBA] UserForm を Excel の W...
-
TreeView表示がおかしいです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
ゲームでは結局どっちが良いの?
-
ExcelのBOOKが消えた!
-
VBA .Value=.Value ?
-
[VBA] UserForm を Excel の W...
-
ラジオボタンの初期指定
-
勝手にウィンドウが開いて止ま...
-
Excelの上下を固定したい
-
【VB2008】 マウス操作の一時的...
-
「&HFFFF」「&H1A」とは?
-
作成したウインドウのサイズを...
-
親ウインドウにあるOKボタンを...
-
他のアプリケーションの終了処理
-
MFC ダイアログ上のID取得につ...
-
ExcelVBAでAPIを使って外部ウイ...
-
Alt+P,Alt+NをPostmessageで送...
-
EnumChildWindowsの使い方(VBA)
-
Vba LongPtrについて教えてくだ...
おすすめ情報