unhandled exception 错误

用vc++6.0写MFC程序时,偶尔会出现这样一个现象:用ClassWizard给对话框上的控件关联变量后,程序编译连接都没报错,但是无法运行。调试一下出现这样一个错误:Unhandled exception in videoSynopsis.exe: 0xC0000005: Access Violation。

 

*****解决:组建->清除,重新编译即可。

 

参考方法一:

将.ncb和.opt文件删除后,重新编译

 

参考方法二:

这个问题困扰了我1个小时,在网上查询了很多论坛帖子和博客文章,无果。自己做了很多尝试后,终于解决了这个问题。

 

方法如下: 用ClassWizard给对话框上的控件关联变量,变量定义会加在头文件中的//{{AFX_DATA(VideoSynopsisDlg) 和 //}}AFX_DATA 之间,如下所示:

 // Dialog Data

//{{AFX_DATA(VideoSynopsisDlg)

enum { IDD = IDD_VIDEOSYNOPSIS_DIALOG };

int m_synopsisID; // 要显示的视频摘要的ID

int m_concurrenceNum; // 在屏幕上并发显示的目标的数量

CString m_dvr_ip;

int m_dvr_port;

int m_dvr_channel;

CString m_dvr_password;

CString m_dvr_account;

//}}AFX_DATA

 

把后期加入了变量定义放到{{AFX_DATA(VideoSynopsisDlg) 和 //}}AFX_DATA 之外后,程序就能运行了,如下:

CString m_dvr_ip;

int m_dvr_port;

 int m_dvr_channel;

CString m_dvr_password;

CString m_dvr_account;

 

 // Dialog Data //{{AFX_DATA(VideoSynopsisDlg)

enum { IDD = IDD_VIDEOSYNOPSIS_DIALOG };

int m_synopsisID; // 要显示的视频摘要的ID

int m_concurrenceNum; // 在屏幕上并发显示的目标的数量

//}}AFX_DATA

 

原因:vc++6.0的bug,建议用vs2008或vs2010比较好。

你可能感兴趣的:(MFC)