错误提示信息如下:IEXPLORE 在 0167:5f40430d 的模块
 MFC42.DLL 中导致无效页错误。
Registers:
EAX=10008760 CS=0167 EIP=5f40430d EFLGS=00210206
EBX=0058c48e SS=016f ESP=0058c408 EBP=0058c434
ECX=0000001a DS=016f ESI=00000000 FS=2ab7
EDX=81745be0 ES=016f EDI=0058c496 GS=0000
Bytes at CS:EIP:
0f b6 40 14 8b 5d 0c 89 45 08 85 f6 75 41 f6 47 
Stack dump:
00000000 0058c4ea 0058c48e 0058c454 001f2d4c 820fb22c 00000084 004829f8 0058c464 5f492db2 ffffffff 0058c474 bff72317 00000003 00000c90 0058c4c6

解决方案 »

  1.   

    自己搜索资料先:http://www.west2online.fzu.edu.cn/gamescd/qita/01.htm
    mfc42.dll及msvcrt.dll是Microsoft Foundation Classes (MFC) Libraries动态连结库。大部分软件在安装的时候就会将他们一起安装到电脑里面。有些软件为了让安装文件小一点,就没有包含这两个动态连结库,这时候你就需要另外安装他们了http://support.microsoft.com/default.aspx?scid=kb;ZH-CN;q168004FIX: "Unable to initialize DAO/Jet db engine" Error (Q168004)--------------------------------------------------------------------------------
    The information in this article applies to:
    Microsoft Visual C++, 32-bit Enterprise Edition, versions 4.2 , 4.2b , 5.0 
    Microsoft Visual C++, 32-bit Professional Edition, versions 4.2 , 4.2b , 5.0 
    --------------------------------------------------------------------------------
    SYMPTOMS
    When you run a Visual C++ version 4.2 or 4.2b application on a machine that has the 4.21.7022 version of the MFC DLL (MFC42.DLL), the following message appears when you try to use MFC DAO classes: Unable to initialize DAO/Jet db engine CAUSE
    Version 4.21.7022 of the MFC DLL (MFC42.DLL), which comes with Visual C++ 5.0, always incorrectly tries to use DAO 3.5. Visual C++ 4.2 applications use DAO 3.0 and, therefore, DAO 3.0 is installed rather than DAO 3.5. When MFC tries to load DAO 3.5 and it is not there, the error message shown above appears. RESOLUTION
    Visual C++ applications that are statically linked with MFC do not use the MFC42.DLL and do not see the problem. Also, the MFC DLL (MFC42.DLL) that comes with Visual C++ 4.2 can be placed in the directory of the application so that it is used, rather than the newer MFC DLL. It is possible to fix the problem by installing DAO 3.5 on the machine as well. However, keep in mind that this means you will be using a new Jet database engine, which may introduce new problems with the application that was tested using DAO 3.0. STATUS
    Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been corrected in Visual Studio 97 Service Pack 1. For additional information about the Visual Studio 97 Service Pack 1, please see the following article in the Microsoft Knowledge Base: Q170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why MORE INFORMATION
    You can see the bug with the MFC42.DLL by looking in the DAOCORE.CPP file included with Visual C++ 5.0. In several places in the file you can see the following code:       // Determine whether to use DAO 3.5 or 3.0
          // Use DAO 3.0 if DLL build and not
          // built with MFC 4.21 or later
          BOOL bUseDao30 = FALSE;   #ifdef _AFXDLL
          AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
          if (pModuleState->m_dwVersion < 421)
             bUseDao30 = TRUE;
       #endif // _AFXDLL
    Notice that the version checking is incorrect. The version is checked against '421' instead of '0x0421'. This means that bUseDao30 will always be FALSE and this causes DAO 3.5 to be used.
      

  2.   

    http://www.csdn.net/expert/topic/502/502981.xml?temp=.1484491
    主  题:  请问,关于.dll文件的错误怎么办,我的某些软件一启动就显示说比如mfc42.dll错误,然后就关闭,不管怎样重装都不行,求救!!! 
    作  者:  wideseaheart (广海之心)  
    等  级:    
    信 誉 值:  100 
    所属论坛:  Windows  9x/ME 
    问题点数:  20 
    回复次数:  9 
    发表时间:  2002-1-28  1:30:08 
       
     
       
    请问,关于.dll文件的错误怎么办,我的某些软件一启动就显示说比如mfc42.dll错误,然后就关闭,不管怎样重装都不行,求救!!! 
     
     
     回复人: cnss(风) (  ) 信誉:98  2002-1-28  1:40:03  得分:0  
     
     
      windows的事吧,重装系统 
     
    Top 
     
     回复人: wideseaheart(广海之心) (  ) 信誉:100  2002-1-28  10:36:17  得分:0  
     
     
      没有别的办法么?fmc42.dll是什么? 
     
    Top 
     
     回复人: cnss(风) (  ) 信誉:98  2002-1-28  15:10:54  得分:0  
     
     
      fmc42.dll是MFC的动态链接库,它支持着MFC程序的运行  
      
    如果你替换fmc42.dll还不行,估计是系统有毛病了 
     
    Top 
     
     回复人: siyuan79(极品荔枝,增城挂绿。) (  ) 信誉:100  2002-1-28  16:03:36  得分:0  
     
     
      如果你从一个没有问题的系统中COPY一个这个文件还是不行的话,那你只有从新安装系统了!没有办法啊! 
     
    Top 
     
     回复人: RockSjc(Midnight) (  ) 信誉:100  2002-1-28  22:53:10  得分:0  
     
     
      mfc42.dll是用VC写的程序的动态链接库,没有他,用相应VC写的程序就不能运行。  
    将MFC42.dll删除,再重新复制/安装你的软件。可能是你新装的软件中的MFC比原来的版本旧,导致上述错误。  
    如果你没有MFC的话,可到本站“软件”部分找找!  
    Good  lucky! 
     
    Top 
     
     回复人: rgbahnh(秋风) (  ) 信誉:100  2002-1-29  11:06:01  得分:0  
     
     
      不用这么麻烦,你把mfc42.dll的文件复制出来,放到c:\windows\system下面,然后打开注册表用查找功能找出所有键值为mfc42。ll的键值,把它删除。然后重新启动一下,系统会自动查找出正确的文件。这样就好了。 
     
    Top 
     
     回复人: rosson(新星罗雄) (  ) 信誉:100  2002-1-29  17:24:56  得分:0  
     
     
      记住MFC42的路径,将其删除,再在你所安装的盘中提取这个文件出来,如有问题联系我吧  
    [email protected] 
     
    Top 
     
     回复人: wideseaheart(广海之心) (  ) 信誉:100  2002-1-29  23:53:00  得分:0  
     
     
      多谢各位前辈指点,多谢!有问题我会再问的 
     
    Top 
     
     回复人: pepsimen(金属柔情) (  ) 信誉:100  2002-1-30  13:01:52  得分:0  
     
     
      运行c:\windows\system\sfc.exe  系统文件检查程序  
    如果文件有错会提示你用原盘中的文件来替换的!!!