windows提示“关闭程序”对话框的原因是什么?

女神打Boss 2015-03-31 10:12:13


就是这种对话框,程序可能的原因是什么,有什么方法可以解决?
...全文
151 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
女神打Boss 2015-04-02
  • 打赏
  • 举报
回复
这种情况就是程序崩溃了呗,资源用错了,指针空了之类的
赵4老师 2015-03-31
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
女神打Boss 2015-03-31
  • 打赏
  • 举报
回复
引用 5 楼 xmnathan 的回复:
[quote=引用 4 楼 CKRGD 的回复:] 才发现一个问题,这个程序release版本可以正常运行,而debug版本无法正常运行,这种情况是为什么?
猜不出来 380行之前下个断点看看呗[/quote] 代码是这样的

CWinApp::CWinApp(LPCTSTR lpszAppName)
{
	if (lpszAppName != NULL)
		m_pszAppName = _tcsdup(lpszAppName);
	else
		m_pszAppName = NULL;

	// initialize CWinThread state
	AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();
	ENSURE(pModuleState);
	AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;
	ENSURE(pThreadState);
	ASSERT(AfxGetThread() == NULL);
	pThreadState->m_pCurrentWinThread = this;
	ASSERT(AfxGetThread() == this);
	m_hThread = ::GetCurrentThread();
	m_nThreadID = ::GetCurrentThreadId();

	// initialize CWinApp state
	ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please
	pModuleState->m_pCurrentWinApp = this;
	ASSERT(AfxGetApp() == this);

	// in non-running state until WinMain
	m_hInstance = NULL;
	m_hLangResourceDLL = NULL;
	m_pszHelpFilePath = NULL;
	m_pszProfileName = NULL;
	m_pszRegistryKey = NULL;
	m_pszExeName = NULL;
	m_pRecentFileList = NULL;
	m_pDocManager = NULL;
	m_atomApp = m_atomSystemTopic = NULL;
	m_lpCmdLine = NULL;
	m_pCmdInfo = NULL;

	// initialize wait cursor state
	m_nWaitCursorCount = 0;
	m_hcurWaitCursorRestore = NULL;

	// initialize current printer state
	m_hDevMode = NULL;
	m_hDevNames = NULL;
	m_nNumPreviewPages = 0;     // not specified (defaults to 1)

	// initialize DAO state
	m_lpfnDaoTerm = NULL;   // will be set if AfxDaoInit called

	// other initialization
	m_bHelpMode = FALSE;
	m_eHelpType = afxWinHelp;
	m_nSafetyPoolSize = 512;        // default size
}
ASSERT(AfxGetThread() == NULL);//380行 在第二次执行到这里的时候报错,弹出上面的对话框
  • 打赏
  • 举报
回复
引用 4 楼 CKRGD 的回复:
才发现一个问题,这个程序release版本可以正常运行,而debug版本无法正常运行,这种情况是为什么?
猜不出来 380行之前下个断点看看呗
女神打Boss 2015-03-31
  • 打赏
  • 举报
回复
引用 3 楼 xmnathan 的回复:
[quote=引用 2 楼 CKRGD 的回复:]
[quote=引用 1 楼 xmnathan 的回复:]
单步调试看看吧,可能的情况很多


关键是我开发时候没问题,拿去用了有问题了[/quote]
那就很有可能是对应的动态库没有找到 你可能需要包在程序包里,用Release方式编译
开发机是装了VC的所以没问题 如果其他机器没有安装对应的VC支持库 是无法运行的[/quote]
才发现一个问题,这个程序release版本可以正常运行,而debug版本无法正常运行,这种情况是为什么?
  • 打赏
  • 举报
回复
引用 2 楼 CKRGD 的回复:
[quote=引用 1 楼 xmnathan 的回复:] 单步调试看看吧,可能的情况很多
关键是我开发时候没问题,拿去用了有问题了[/quote] 那就很有可能是对应的动态库没有找到 你可能需要包在程序包里,用Release方式编译 开发机是装了VC的所以没问题 如果其他机器没有安装对应的VC支持库 是无法运行的
女神打Boss 2015-03-31
  • 打赏
  • 举报
回复
引用 1 楼 xmnathan 的回复:
单步调试看看吧,可能的情况很多
关键是我开发时候没问题,拿去用了有问题了
  • 打赏
  • 举报
回复
单步调试看看吧,可能的情况很多
12304108 2015-03-31
  • 打赏
  • 举报
回复
http://blog.csdn.net/u011014707/article/details/14517631 希望对你有用
相关推荐
发帖
其它技术问题

3880

社区成员

C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
帖子事件
创建了帖子
2015-03-31 10:12
社区公告
暂无公告