当前位置: 代码迷 >> VC/MFC >> 关于Run Run-Time Check failure #二 - Stack around the variable 'dlg' was corrupted”
  详细解决方案

关于Run Run-Time Check failure #二 - Stack around the variable 'dlg' was corrupted”

热度:332   发布时间:2016-05-02 03:49:02.0
关于Run Run-Time Check failure #2 - Stack around the variable 'dlg' was corrupted”
本帖最后由 VisualEleven 于 2013-08-29 11:10:16 编辑
我做的一个框架 调试木有问题 
但是点击确定或者 取消时候 总会弹出这个错误 纠结不知道哪里错了
自己也找不到错误 
偶然在主框架的头文件里面 多写了一个指向对话框的指针 就不再出现这个问题了
可是 该指针既没有初始化 也木有使用过 仅仅声明而已啊
屏蔽就会出错
求牛人帮帮 看看 谢~~


// GLC_Integrated_InterfaceDlg.h : 头文件
//

#pragma once
#include "afxcmn.h"
#include "PAGE1.h"
#include "PAGE2.h"
#include "PAGE3.h"


// CGLC_Integrated_InterfaceDlg 对话框
class CGLC_Integrated_InterfaceDlg : public CDialogEx
{
// 构造
public:
CGLC_Integrated_InterfaceDlg(CWnd* pParent = NULL); // 标准构造函数

// 对话框数据
enum { IDD = IDD_GLC_INTEGRATED_INTERFACE_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持


// 实现
protected:
HICON m_hIcon;

// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CTabCtrl m_tab;
CPAGE1 cpage1;
CPAGE2 cpage2;
CPAGE3 cpage3;
int curseTab;
CDialog *pDialog[2];

//很奇怪 加了这个指针就不出现 Run-Time Check Failure #2 Stack around the variable 'dlg' was corrupted
//但是 并没有初始化 没有利用 删除就出错 就是下面这个指针
CPAGE1 *pcpage1;

afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedOk();

}

------解决思路----------------------
pDialog 是否有越界等
------解决思路----------------------
那就是越界,加了指针未必就会没问题,可能只是暂时没发作而已。上点击确定的代码看下
------解决思路----------------------
pDialog[2] 就用了pDialog[0] pDialog[1] pDialog[2] 不觉得有越界 

这个就是越界了
------解决思路----------------------
引用:
pDialog[2] 就用了pDialog[0] pDialog[1] pDialog[2] 不觉得有越界 

这个就是越界了

  相关解决方案