基于对话框的MFC问题,在构造中new一个对象,在析构中释放,竟然可以出错!

class CMilesight_Intelligence_AlgorithmDlg : public CDialogEx
{

public:
CIpCamera *m_ip_camera;//已经定义好的一个类库

}
CMilesight_Intelligence_AlgorithmDlg::CMilesight_Intelligence_AlgorithmDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CMilesight_Intelligence_AlgorithmDlg::IDD, pParent)
{
m_ip_camera = new(CIpCamera);

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

CMilesight_Intelligence_AlgorithmDlg::~CMilesight_Intelligence_AlgorithmDlg()
{

delete m_ip_camera;

}
代码很简单,就是在构造中new一个对象,在析构中释放,调试没有错误,运行时报错
报错信息:
Critical error detected c0000374
Windows 已在 Milesight_Intelligence_Algorithm.exe 中触发一个断点。

其原因可能是堆被损坏,这说明 Milesight_Intelligence_Algorithm.exe 中或它所加载的任何 DLL 中有 Bug。

原因也可能是用户在 Milesight_Intelligence_Algorithm.exe 具有焦点时按下了 F12。

输出窗口可能提供了更多诊断信息。
程序“[8892] Milesight_Intelligence_Algorithm.exe: 本机”已退出,返回值为 0 (0x0)。
错误的堆栈信息:
图片说明

找了半天,想不出什么原因,是基于对话框的MFC,其APP类我没有动,我只需要在DLG对话框中进行操作。现在只是简单的新建个对象,都能出错!醉了

是预编译导致代码改动没有重新编译,所以代码有问题了?

折腾了一上午,终于找到问题了,预编译的问题!