いつもお世話になっています。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
クラスがA, B, C, MyTreeView, CViewDoc
オブジェクト(のポインタ)がpView3, pView4, pView5
と色々出てくるが、其々の関係は?(AがMyTreeViewらしいが...)
其々の関係を正しく書かないと読む人はわけがわからないよ。
pView4, pView5はどこに宣言されていて、正しく初期化されているの?
maruさん
ご返事ありがとう。
>pView4, pView5はどこに宣言されていて、正しく初期化されているの?
問題が見つかりました。
B, Cクラスがアクティブ化しないとエラーが出ました。
問題が見つけるのは大変でした。
どうもありがとうございました。
解決のチェックが忘れました。