请教“应用程序正常初始化失败”问题

nju001 2007-03-05 02:30:35

我有一个用MFC编写的DLL,名为PTWSConFc.dll,在另外一个由可视化编程工具生成的C代码中调用,生成的执行文件为Main.exe。以前在WinNT和Win2K环境下运行没有出现过问题,现在在WinXP环境下使用时,Main.exe一启动就报两次“应用程序正常初始化(0xc0000005)失败。请单击“确定”,终止应用程序。”,然后退出。

我所进行的尝试包括:
(一)将所有源程序(包括PTWSConFc.dll的源代码和Main.exe的源代码)在WinXP下进行重新编译链接,异常现象依旧;
(二)对PTWSConFc.dll的源程序进行逐步分析,发现当在CPTWSConFcApp::InitInstance()中增加如下代码时,就会出现上述异常现象:

1> ::SetErrorMode(SEM_NOGPFAULTERRORBOX);
2>
3> COleObjectFactory::RegisterAll();
4>
5> m_pClientWnd = new CConClientWnd();
6> CString sWinName;
7> sWinName.Format("PTWS主站模块客户接口%lu",::GetCurrentThreadId());
8> ((CFrameWnd*)m_pClientWnd)->Create(NULL,sWinName);
9> m_pClientWnd->ShowWindow(SW_HIDE);
10>
11> return CWinApp::InitInstance();

而将其中的第8、9行去掉时上述异常现象消失。
(三)为进一步确定问题所在,我重新编写了PTWSConFc.dll的源程序,将绝大部分内容去除,只保留了DLL调用接口和CPTWSConFcApp::InitInstance()等必须的内容,异常现象依旧。
(四)在另外一个用VC6编写的MFC应用中也使用了PTWSConFc.dll,但是没有出现上述异常现象。
...全文
983 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nju001 2007-03-06
  • 打赏
  • 举报
回复
我感觉是在DLL加载的时候就出现非法访问错误了,想进一步看看在什么地方出错,可是运行不到在CPTWSConFcApp::InitInstance()设置的断点,总是报“One or more breakpoint can not be set and have been disabled. Ececution will stop at the begining of the program.”。
nju001 2007-03-06
  • 打赏
  • 举报
回复
在调试器中运行了“main.exe”,一启动就报两次“应用程序正常初始化(0xc0000005)失败。请单击“确定”,终止应用程序。”,然后报“Unhandled exception in main.exe(NTDLL.DLL): 0xc0000005: Access Violation”。说明什么呢?如何继续检查?
ATField 2007-03-05
  • 打赏
  • 举报
回复
用不用MFC都可以Debug阿。在调试器中启动main.exe,看有何发现
nju001 2007-03-05
  • 打赏
  • 举报
回复
我在网上查了好多资料,好象别人碰到这种情况都是因为硬件驱动的问题,可是我这里显然不是啊。
nju001 2007-03-05
  • 打赏
  • 举报
回复
因为是用MFC编写,用Debug跟不进去啊...
ATField 2007-03-05
  • 打赏
  • 举报
回复
用调试器调试过了没有啊?具体是什么错误呢?是返回了错误值还是触发了SEH(比如Access Violation)
nju001 2007-03-05
  • 打赏
  • 举报
回复
该如何继续查下去呢?

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧