CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

帮忙分析_DllMainCRTStartup中的错误

楼主modena(非云)2006-03-03 11:28:32 在 VC/MFC / 进程/线程/DLL 提问

程序访问网络的客户端应用程序,应用到大量网络和媒体相关处理的DLL,不基于MFC,目前对底层库进行升级.  
  出现的问题是:  
  Release/Debug正常应用较长时间,未出现问题.  
  在调试状态时,正常无规则操作可能引起Crack,输出显示:  
  HEAP[XConvert.exe]:   Heap   missing   last   entry   in   committed   range   near   194ed0  
  断点位于一个COM组件DLL中的_DllMainCRTStartup中如下位置:  
                  BOOL   retcode   =   TRUE;  
   
                  /*  
                    *   If   this   is   a   process   detach   notification,   check   that   there   has  
                    *   has   been   a   prior   process   attach   notification.  
                    */  
                  if   (   (dwReason   ==   DLL_PROCESS_DETACH)   &&   (__proc_attached   ==   0)   )  
                          /*  
                            *   no   prior   process   attach   notification.   just   return  
                            *   without   doing   anything.  
                            */  
                          return   FALSE;  
   
                  __try   {  
                          if   (   dwReason   ==   DLL_PROCESS_ATTACH   ||   dwReason   ==   DLL_THREAD_ATTACH   )  
                          {  
                                  if   (   _pRawDllMain   )  
                                          retcode   =   (*_pRawDllMain)(hDllHandle,   dwReason,   lpreserved);  
   
                                  if   (   retcode   )  
                                          retcode   =   _CRT_INIT(hDllHandle,   dwReason,   lpreserved);  
   
                                  if   (   !retcode   )  
                                          return   FALSE;  
                          }  
   
                          //   断点位于此处,此时retcode=0  
                          retcode   =   DllMain(hDllHandle,   dwReason,   lpreserved);  
   
  编译环境经DailyBuild自动配置,因此一般不会存在DLL引用关系错位等问题.  
  虽然目前不影响使用,但一直心中不安,请大家帮忙分析产生此种现象可能的原因!  
  问题点数:200、回复次数:7Top

1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-03-03 21:58:33 得分 30

Heap   missing   last   entry   in   committed   range   near   194ed0  
   
  一般是内存越界或破坏之类的,造成堆破坏。Top

2 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-03 22:24:52 得分 20

高深!!本来想说的都被楼上说完了!!关注....Top

3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2006-03-04 14:48:09 得分 30

还是检查一下代码等什么的~调试Top

4 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-04 22:16:31 得分 20

up,象这种_DllMainCRTStartup中的错误,一般是其他地方的问题导制的Top

5 楼modena(非云)回复于 2006-03-07 14:56:04 得分 0

出错的DLL是采用标准的COM规则自己制定的,非MFC的COM被MFC应用程序调用  
   
  分析可能是因为某些编译器选项不一致,引起DLL接口规则不同产生  
  也有可能是某些调用约定不对产生  
  Top

6 楼mythay(小黑)回复于 2006-03-07 16:07:43 得分 100

原来的苦肯定不存在这个问题,而现在出现这种内存问题,可能是由于不同组件间是用不同的语言编制的,或者同一种语言编制时的环境配置不一样,而在特殊的情况下引起对管理的混乱。Top

7 楼modena(非云)回复于 2006-03-13 09:34:35 得分 0

重新构建了下配置流程,问题未再出现,估计是DLL版本配对有问题!  
   
   
  谢谢各位捧场:)Top

相关问题

  • 错误分析
  • 错误分析
  • C#中的错误,大家帮我分析分析
  • 分析器错误
  • 【新手】visual c++ 6.0 中 delete 错误!怎么分析?
  • 一个错误分析
  • 将用户控件放在Web页面中显示分析器错误
  • 帮忙分析一下错误。
  • 救助!c++程序错误分析
  • 分析器错误 如何解决

关键词

  • dll
  • dllmaincrtstartup
  • dwreason
  • retcode
  • attach
  • notification
  • 问题
  • 引起
  • 出现
  • process

得分解答快速导航

  • 帖主:modena
  • DentistryDoctor
  • rageliu
  • oyljerry
  • rageliu
  • mythay

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo