今天遇到个问题一直想不明白:
如果对一个类声明两个对象之后,程序就崩溃,代码如下:
CFlagColorDlg page6(IDS_TRADEID);//
sheet.AddPage(&page6); if (GetIniCtrl()->HasCargoId())
{
CFlagColorDlg page7(IDS_CARGOID);//
sheet.AddPage(&page7);
}
sheet.DoModal();
如果声明一个,new一个就没有问题,代码如下:
CFlagColorDlg page6(IDS_TRADEID);//
sheet.AddPage(&page6);
CFlagColorDlg *page7;
if (GetIniCtrl()->HasCargoId())
{
page7 = new CFlagColorDlg(IDS_CARGOID);//
sheet.AddPage(page7);
}
sheet.DoModal();
delete page7; 请高手指点这是怎么回事呢?按照这样的话,如果用两个new也应该没问题。
如果对一个类声明两个对象之后,程序就崩溃,代码如下:
CFlagColorDlg page6(IDS_TRADEID);//
sheet.AddPage(&page6); if (GetIniCtrl()->HasCargoId())
{
CFlagColorDlg page7(IDS_CARGOID);//
sheet.AddPage(&page7);
}
sheet.DoModal();
如果声明一个,new一个就没有问题,代码如下:
CFlagColorDlg page6(IDS_TRADEID);//
sheet.AddPage(&page6);
CFlagColorDlg *page7;
if (GetIniCtrl()->HasCargoId())
{
page7 = new CFlagColorDlg(IDS_CARGOID);//
sheet.AddPage(page7);
}
sheet.DoModal();
delete page7; 请高手指点这是怎么回事呢?按照这样的话,如果用两个new也应该没问题。
解决方案 »
- ATL中自绘按钮不能使用AlphaBlend函数吗???????????
- 用ExecuteSQL()执行oracle中的存储过程!
- 我在网页中嵌入一个ActiveX控件,如何设置该ActiveX的控件大小在IE的客户区中进行显示?
- RAW SOCKET和不同系统带来的问题
- 一个关于ODBC数据库编程问题,高手请进
- 新手请大家指点:VC++与VC的区别
- 在win32SDK中有和AfxParseURL(MFC)类似的函数吗?
- 小问题,如何将 bmp 文件绘画到form 上, 下面有错,如何修正?
- 大家一般用什么方法遍历整个数据库,急啊,各位哥哥进来看看吧。分不够再加,我有的事!!!
- 简单的入门问题:如何让菜单变灰?
- 求助:CreateFileMapping与MapViewOfFile函数问题,非常感谢
- Win32API Shell_NotifyIcon如何显示气球提示
你看看
把它改成成员的指针
用的时候new出来
sheet.AddPage(&page6);
CFlagColorDlg page7(IDS_CARGOID);//
if (GetIniCtrl()->HasCargoId())
{
sheet.AddPage(&page7);
} 具体crash到哪里呢,就怕第二个是{}里面的局部变量。写在外面试试。
class CFlagColorDlg : public CPropertyPage
{
DECLARE_DYNCREATE(CFlagColorDlg)// Construction
public:
CFlagColorDlg();
~CFlagColorDlg();
CFlagColorDlg(UINT nCaption);// Dialog Data
//{{AFX_DATA(CFlagColorDlg)
enum { IDD = IDD_FLAG_COLOR };
CRecordList m_lstFlagColor;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CFlagColorDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
private:
UINT m_nTyp ;
CString m_strFlagEng;
void InitList();
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CFlagColorDlg)
virtual BOOL OnInitDialog();
afx_msg void OnDblclkFlagColor(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()};
if (GetIniCtrl()->HasConsignerCod())
{
CShipperColorPage page5(_T("CONSIGNER"),IDD_CONSIGN_COLOR);
sheet.AddPage(&page5);
}