Witam,
Mam pewien problem z odwołaniem się do obiektu danej klasy w innej klasie.
Otóż mam następującą klasę:
class CCechy : public CDialog
{
DECLARE_DYNAMIC(CCechy)
public:
CCechy(CWnd * pParent = NULL, HBaseView * View = 0); // standard constructor
virtual ~CCechy();
enum { IDD = IDD_DIALOG2 }; //okno dialogowe zawierające drzewo
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
public:
CCechyTreeCtrl m_Segment_tree;
HBaseView *m_pHView;
CWnd *m_parent;
HTREEITEM InsertItemInTree(HC_KEY key, HTREEITEM position, CTreeCtrl *TreeCtrl);
HTREEITEM InsertSegmentList(HC_KEY segkey, HTREEITEM item);
DECLARE_MESSAGE_MAP()
public:
HC_KEY m_baseKey;
afx_msg void OnBnClickedButton2();
HTREEITEM InsertGeometryList(HC_KEY segkey, HTREEITEM item);
HTREEITEM root, test;
int static ile;
CEdit m_edit2;
HTREEITEM FindItemBySegmentKey(HC_KEY segkey, HTREEITEM item);
};
a w niej obiekt klasy CCechyTreeCtrl, a mianowicie m_Segment_tree.
Klasa CCechyTreeCtrl wygląda tak:
class CCechyTreeCtrl : public CTreeCtrl
{
public:
CCechy * pokaz;
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult);
};
W niej mam wskaźnik pokaz, który pokazuje na obiekt klasy CCechy.
I teraz w funkcji OnTvnSelchanged chcę odnieść się do obiektu klasy CCechy przez ten wskaźnik.
void CCechyTreeCtrl::OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
pokaz->ile += 2000;
assert(pokaz->m_Segment_tree);
}
Do zmiennej statycznej się odnoszę bez problemu, ale do obiektu już nie, bo przy debugowaniu pojawia się błąd
Access violation reading location 0xFFFFFFFFFFFFFFFF i program przestaje działać.
Co może być tego przyczyną?