析构函数里能不能放别的函数,比如我在以下析构函数里添加了以下代码,
CMfcexp4_1View::~CMfcexp4_1View()
{
//if (cardID!=-1) /****自己添加的,以前这个析构函数为空的******/
/* {
Release_Card(cardID);
}
KillTimer(1);*/
}
0错误 0警告,但是运行完程序后会弹出Debug assertion failed
program:E:\*.exe
file: afxwin2.inl
line:171
错误,请问我遇到的是什么问题,我的添加的两个函数:释放采集卡,和关闭定时器,该填在什么地方比较好?
CMfcexp4_1View::~CMfcexp4_1View()
{
//if (cardID!=-1) /****自己添加的,以前这个析构函数为空的******/
/* {
Release_Card(cardID);
}
KillTimer(1);*/
}
0错误 0警告,但是运行完程序后会弹出Debug assertion failed
program:E:\*.exe
file: afxwin2.inl
line:171
错误,请问我遇到的是什么问题,我的添加的两个函数:释放采集卡,和关闭定时器,该填在什么地方比较好?
解决方案 »
- 求助!!!!!!!!!!!!
- 金山开源漏洞扫描器的漏洞库怎么来的?
- 平反<<Network Programming for Microsoft Windows,2nd Edition>>中对WSAAsync Select模型的测试性能
- 请问在2K和XP下是否可以HOOK DDI?
- <<Windows核心编程>>的示例程序为什么编译总通不过?
- 问一个关于dll的小问题哈
- 关于树状控件的一个问题?
- (openCV环境)将提取出的运动目标用矩形标出,然后在矩形区域内做Optical Flow,求实现???
- 请问如何动态控制多显示器的位置
- 传送压缩包不能解压(客户端Windows,服务器Linux)
- VC读写XML文件 出问题 谢谢放大家了!!!
- 请问如何用VC操作PowerPoint,读写PowerPoint页面的备注页中的文本?自己写了一段读写代码,但是有问题,没有完成备注页文本的读写。
/* {
Release_Card(cardID);
}
这个应该可以放在析构函数里面
楼主,把KillTimer(1); 去掉,应该就好了。
BOOL CWnd::KillTimer(int nIDEvent)
{
ASSERT(::IsWindow(m_hWnd)); //析构函数里面m_hWnd是无效的,当然assert出错了。
return ::KillTimer(m_hWnd, nIDEvent);
}
非常感谢15楼很细心,17楼画龙点睛,非常感谢我的问题得到了这么多人的帮助,
BOOL CMfcexp4_1View::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
KillTimer(1);
return CView::DestroyWindow();
}