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