有没有办法可以判断指针地址是否有效? 常规的做法是在该指针使用完后删除并赋值为NULL,这样再判断是否为NULL就可以,但目前的问题是该指针指向的是非模态对话框,对话框的销毁在其自身中,这样在主程序中该对话框指针就没有机会设置为NULL了。除非在用户关闭非模态对话框时通过消息返回给主程序,主程序收到子窗体的关闭消息后再设置该指针为NULL。感觉很麻烦。有没有更好的办法解决这样问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IsBadReadPtrIsBadWritePtr还有另外一些函数,你在MSDN中查询上面的函数,会有相关联接。 为什么删除自身就没法设置指针为NULL?这种情况下你一般有一个固定的变量保存指针值,找到哪个变量并设置为NULL即可CMyDialog *g_pDlg = new CMyDialog();CMyDialog::OnNcDestroy(){ g_pDlg = NULL; delete this;};对于窗口,也许IsWindow(g_pDlg->m_hWnd)也是个好办法 明天结贴to yang79tao 感谢,这个函数可以用to arong1234 我还是不太明白,我这固定变量在主窗体中,也就是说我在主窗体里创建的子窗体,但要销毁的是子窗体,OnNcDestroy()也是子窗体吧。如果OnNcDestroy()是主窗体函数,那就是主窗体关闭时才处理,其实我是想在主窗体没有关闭时判断子窗体指针是否有效。 vc++ error LNK1127 问题的解决 如何向vc6.0中添加不在system32之中的.dll文件? 高手请进!! 关于视频采集. 消息传送过程中的安全性 关于MFC42.DLL永删不绝的问题!!! 高分求购一个界面程序(先给一百) 如何编写打印呢?我学了一段时间还不会,有谁教我啊! 有人知道,可以启动另外一个进程的线程。 VS3013断点调试问题 拨号程序如何判断已经断线了呢? 怎样给vc资源编辑器添加图标 VC++中'%S'字符的含义
IsBadWritePtr
还有另外一些函数,你在MSDN中查询上面的函数,会有相关联接。
{
g_pDlg = NULL;
delete this;
};对于窗口,也许IsWindow(g_pDlg->m_hWnd)也是个好办法
to yang79tao
感谢,这个函数可以用to arong1234
我还是不太明白,我这固定变量在主窗体中,也就是说我在主窗体里创建的子窗体,但要销毁的是子窗体,OnNcDestroy()也是子窗体吧。如果OnNcDestroy()是主窗体函数,那就是主窗体关闭时才处理,其实我是想在主窗体没有关闭时判断子窗体指针是否有效。