编译正确,debug版本运行异常,
执行到AfxWinMain()的if (!pThread->InitInstance())时,
出现异常:"*.exe 中的 0x00585a5f (mfc71d.dll) 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突"
pThread 为NULL.但release下,就可以正常运行.
请高手指教.

解决方案 »

  1.   

    说明pThread是空指针。release正常只是他没有把错误暴露出来,不代表真对。还是好好跟踪一下吧
      

  2.   

    MFC程序会自动生成一个全局变量CxxxApp theApp,是不是被你删掉了?
      

  3.   

    pThread是指向线程的指针?没有初始化吧?
      

  4.   

    问题肯定是你的pThread没有初始化,在debug下指针变量系统编译时会自动初始化成NULL,而在release下编辑器不会做任何处理,是一个随机的值,而在你的程序中刚好这个随机值是一个合法的地址值,所以不会出错。在程序中最好加上对指针型变量的空值判断。
      

  5.   

    pthread为空吧。如果确认pThread之前已经初始化了,那就是后来被某个操作修改了。
    可以运行起来后,对pThread下个内存断点,当pThread被修改时,看看是哪里在操作。不会用内存断点的话,可以看看这篇文章:
    http://blog.csdn.net/coding_hello/archive/2008/03/08/2157908.aspx
      

  6.   


    应该不是吧,LZ说Release下可以运行的呀。
      

  7.   

    太正常了
    跨线程获取窗口句柄不是经常碰到
    updatedata()方法DEBUG有误,但release无错吗?只要保证你的程序运行没问题经得过压力测试你就把它当成vc的bug就行