我在Embeded Visucal C++中用AfxBeginThread启动一个工作者线程的时候出现了“First-chance exception in myProgam.exe:0xC0000005:Access Violation"异常。
值得注意的是,不是我的线程函数的问题,因为他根本就没有得到运行的机会,是AfxBeginThread抛出的异常!

解决方案 »

  1.   

    把代码贴上来看看。先不要去怀疑AfxBeginThread,毕竟经过那么多人检验过了的东西。还有如果在你调用AfxBeginThread 之前,已经有过内存违规访问了,那么即使你把AfxBeginThread删除了,其它的代码一样会错!!!!也就是很有可能问题在AfxBeginThread之前
      

  2.   

    A点执行,B点,C点都未执行void CFullPinYinMatchBox::MatchPrevious(CLocationInputProxy* m_pLIProxy)
    {
    m_cs.Lock(); WaitForBusy();
             .............................
             ............................. m_bIsBusy = true;
    m_event.ResetEvent();
    SearchParam* sp    = new  SearchParam();
    sp->pMatchBox    = this;
    sp->pLIProxy    = m_pLIProxy;
    AfxMessageBox(_T("A"));//A点
    CWinThread* p= ::AfxBeginThread(InternalMatchPrevious,sp);

    AfxMessageBox(_T("B"));//B点

    // Sleep(10);
    }
    }

    m_cs.Unlock();
    }
    UINT CFullPinYinMatchBox::InternalMatchPrevious(LPVOID pParam)
    {
         AfxMessageBox(_T("C"));//C点         .............................
             .............................}
      

  3.   

    把你的 lock、Unlock 去掉