程序debug时出现:First-chance exception in .exe (NTDLL.DLL): 0xC0000005: Access Violation.
然后转向:Disassembly中的代码:
7C938996   cmp         ecx,dword ptr [edi+4] (停止在这行代码)
7C938999   jne         7C94D6C1
7C93899F   cmp         ecx,eax
7C9389A1   jne         7C94D6C1继续运行就有提示对话框:First-chance exception in .exe (NTDLL.DLL): 0xC0000005: Access Violation.
高手指点一下。有人说是指针没有初始化。

解决方案 »

  1.   

    一句一句debug,看哪句代码引起的这个错误,你应该有东西没有初始化就访问了,0xC0000005内存访问违规!
      

  2.   

    我也很想知道这个答案,我同样遇见了这样的问题,到现在也不知道该如何解决.问题发生的过程.环境: VC 6.0 安装过: 2003 的 SDK我编写了一个很普通的 dialog 的程序, 就是直接用 wizard 生成的.
    然后添加了一个 button.  在 button 的 事件理,打开一个 CFileDialog. 
    生成 CFileDialog   dlgFile(TURE);OnButton()
    {
       CFileDialog dlgFile(TRUE);
       if(dlgFile.doModal() == IDOK)
       {
          /* Nothing does*/
       }
    }编绎完,一切 OK在 debug 方式下,点 button 打开文件对话框,选中一个文件, 点确定, 一切正常,点确定退出程序时,  就出现 First chance expection in NTDLL.dll 具体地址忘了.rebuild all 再按上面过程执行一次,情况一样,还是出错.打开 about 对话框,退出,一切正常.怀疑,是 2003 SDK 头文件引用错误导致, 按 project 中的设置全部恢复为默认值.再运行,还是错误结果.然后,卸了 VC6.0 重新按装, 再运行,还是说 ntdll.dll 出错.(这里还有个小插曲,卸了 VC6.0 后,再装时, ACMBOOT.exe 老是说有 General Protection Fault 的错误. 然后上网搜了一下,是从那个 setup 目录下,拷文件出来安装的.)重编以前跑的好好的程序,一出 CFileDialog 也是挂在这儿了,  console 的是好的.实在是搞不明白了,  公司的电脑,不让上网,重装系统麻烦的不能想象.各位大侠,能不能给点指示啊.我可以单独开贴加分.谢谢了.!!!
      

  3.   

    LZ现在是debug还是release模式?
    换种模式试试看?
      

  4.   

    这种问题一般是因为访问了null指针。
      

  5.   

    可以看看这里的解决方法: http://zhaostudy2.blog.163.com/blog/static/135350205201010395119919/