情况是这样的:
    结构是MFC,使用的编译器环境是VS2008。我先用MFC,用对话框结构,写了一个IP摄像机视频流的接收程序。
    这个对话框程序是一个可以正常运行的,视频可以正常打开和显示。
    但是当我把,这个对话框程序,整合到一个多文档界面的MFC程序中时。
    即用:CStreamGetDlg  cgd;
 cgd.DoModal();
    这种方式调用,结果发现,整合到多文档基面中调用后,视频无法正常打开。不知道是什么原因,众位帮我分析一下。
是内存分配的问题么?还是其它原因?

解决方案 »

  1.   

    检查到这个错误,Heap corruption detected at 00D0CD08,是什么原因帮忙分析一下
      

  2.   

    可能是你delete出问题了,给你看个例子
    01.char *pSrc = "fsfdfdg";  
    02.    unsigned int tLength=strlen(pSrc);   
    03.  
    04.    char* pDest = new char[tLength];      
    05.    memset(pDest,0,tLength);  
    06.    strcpy(pDest,pSrc);       
    07.    delete []pDest;  
    char *pSrc = "fsfdfdg";
    unsigned int tLength=strlen(pSrc);  char* pDest = new char[tLength];    
    memset(pDest,0,tLength);
    strcpy(pDest,pSrc);     
    delete []pDest; 运行后会出现Heap Corruption detected,意思是说写数据的字节数超过了分配的字节数,比如分配了10个字节,但是从分配返回的指针开始写了11个字节的数据 ,strcpy最后会拷贝个\0,越界读写数据。分配的数据大小应该改为tLength+1