CTypedPtrArrayについて(2)

[戻る]
cc 2010/05/18(火) 10:10:53
いつもお世話になっています。ccです。

前CTypedPtrArrayについての質問がありまして、
一応問題が解決したのですが、
新たな問題が出ました。
SDIにA(TreeView)、B(FormeView)、C(ListView)クラスを新規追加しました。

A.h
#include <afxtempl.h>     //追加

class A : public CTreeView
{
public:
void    OnTest2();  
protected:
   CTypedPtrArray<CPtrArray, WCHAR*> m_Wchar2
};
 extern MyTreeView*            pView3;

A.cpp
void A::OnTest2()
{
int n=m_Wchar2.GetSize(); //OK n=0;
}

CViewDoc.cpp
int CViewDoc::ReadTest()
{
 pView3->OnTest2(); //Aクラス OK 
 pView4->OnTest2(); //Bクラス No
 pView5->OnTest2(); //Cクラス No
}

同じやり方で、B,Cクラス
pView4->OnTest2();
pView5->OnTest2();

エラーが出ました。
複数View.exe の 0x7c26d8f2 (mfc70d.dll) でハンドルされていない例外が発生しました
: 0xC0000005: 場所 0x000000b8 を読み込み中にアクセス違反が発生しました。 。

どう解決するかよろしくお願いします。

環境:.Net2002 MFC

maru 2010/05/18(火) 12:06:46
クラスがA, B, C, MyTreeView, CViewDoc
オブジェクト(のポインタ)がpView3, pView4, pView5
と色々出てくるが、其々の関係は?(AがMyTreeViewらしいが...)
其々の関係を正しく書かないと読む人はわけがわからないよ。

pView4, pView5はどこに宣言されていて、正しく初期化されているの?

cc 2010/05/18(火) 15:32:27
maruさん
ご返事ありがとう。

>pView4, pView5はどこに宣言されていて、正しく初期化されているの?

問題が見つかりました。
B, Cクラスがアクティブ化しないとエラーが出ました。

問題が見つけるのは大変でした。

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

cc 2010/05/18(火) 15:33:20
[[解決]]
解決のチェックが忘れました。

古いスレッドには追加発言できません。