new与友元类的访问问题!
程序中两类,CCardReaderSrv_EmuDlg和CCardReaderSrv_EmuDlgAutoProxy,分别已简称DLG【主要是画面显示】和PROXY【主要是底层函数】,在DLG.H文件定义如下
class CCardReaderSrv_EmuDlgAutoProxy;
// CCardReaderSrv_EmuDlg dialog
class CCardReaderSrv_EmuDlg : public CDialog
{
DECLARE_DYNAMIC(CCardReaderSrv_EmuDlg);
friend class CCardReaderSrv_EmuDlgAutoProxy;
public:
void AddHeadInfoStr(LPCTSTR strInfo);
protected:
CCardReaderSrv_EmuDlgAutoProxy* m_pAutoProxy;
。。。
在PROXY.H文件定义如下
class CCardReaderSrv_EmuDlg;
// CCardReaderSrv_EmuDlgAutoProxy command target
class CCardReaderSrv_EmuDlgAutoProxy : public CCmdTarget
{
DECLARE_DYNCREATE(CCardReaderSrv_EmuDlgAutoProxy)
CCardReaderSrv_EmuDlgAutoProxy();
public:
CCardReaderSrv_EmuDlg* m_pDialog;
。。。
之前在DLG里实现访问PRXOY的相关程序,在PROXY回调DLG里面定义的
void CCardReaderSrv_EmuDlg::AddHeadInfoStr(LPCTSTR strInfo)
{
m_InfoEdit.AddHeadInfoStr(strInfo);
}
函数如此调用时m_pDialog->AddHeadInfoStr(str);出现了"Unhandled exception in ***.exe 0xc0000005:Access Violation,急!"问题,之后我参考其他文章在DLG里面如此实现
m_pAutoProxy = new CCardReaderSrv_EmuDlgAutoProxy();
m_pAutoProxy->Init();此时PROXY回调DLG里面AddHeadInfoStr函数不报上述错误了,但是碰到了最后编译的程序不能完全退出问题,烦请请教各位大哥指点一下,看看有何方法能解决上述问题,谢谢,小弟感激不尽!