为什么我的程序bulid之后没有error和waring,运行也能运行,但是在具体点击某个按钮是出现"Ox5f36de6指令引用的ox00000020内存,该内存不能为read"这样的语句啊
要用什么样的方法才能解决的.请大家帮帮我了,我真的找不出原因了.

解决方案 »

  1.   

    好的好的,希望大家帮忙看看.
    void CKehuDlg::OnRecordStart() 
    {
    // TODO: Add your command handler code here
    char filename[256];
    CWnd* pButton1; if (nn1 >= 0)
    {
    sprintf(filename,"d:\\mp4test1_%d.mp4",capcount);
    MP4_ClientStartCaptureFile(nn1,filename);
    }
    if (nn2 >= 0)
    {
    sprintf(filename,"d:\\mp4test2_%d.mp4",capcount);
    MP4_ClientStartCaptureFile(nn2,filename);
    } capcount++; pButton1 = (CButton*)GetDlgItem(ID_RECORD_STOP);
    pButton1->EnableWindow(TRUE);
    pButton1 = (CButton*)GetDlgItem(ID_RECORD_START);
    pButton1->EnableWindow(FALSE);}麻烦大家帮忙找找!
      

  2.   

    帮不上什么忙了,不大可能是pButton1为空的问题。
    MP4_ClientStartCaptureFile,应该是这里执行出错,设断点跟踪检查一下
      

  3.   

    很不好意思,因为是初学者,所以我不会设断点跟踪检查,能不能教教我啊.我也在想也许是filename 这个参数有问题,帮忙找找
      

  4.   

    你的程序写的不规范,建议你看看代码规范之类的文章或书pButton1 = (CButton*)GetDlgItem(ID_RECORD_STOP);返回值不判断就用,怎么行?
    应该
    if(pButton1 != NULL)
    {
    pButton1->EnableWindow(TRUE);
    }而且你的变量定义不规范,我敢说,等你一个月后回来看自己的代码,自己都看不懂,特别是程序作大之后。
      

  5.   

    被你说重了吧,我这个是从一个demo程序上面拷贝过来的,因为要做毕业设计,所以一切都是被逼出的.
    呵呵,先敷衍以下老师再说了,谢谢你哦