本帖最后由 vanlin5566 于 2013-11-01 20:51:13 编辑

解决方案 »

  1.   

    我改了析构函数,我一开始也这么觉得,因为析构函数中的delete语句注释掉之后就不会出现这个错误,但是,我在单文档的时候,这个析构函数是没有问题的现在我又是试了试,如果不开新的文档,直接单文档复制粘贴的话,那么程序退出的时候会出现:
    d:\visual studio 2008\projects\poissonediting\poissonediting\poissoneditingview.cpp(252) : {902} normal block at 0x022375E0, 24 bytes long.
     Data: <  G     b   /   > 80 C7 47 01 CD CD CD CD 62 00 00 00 2F 00 00 00 
      

  2.   

    难道说是因为拷贝的数据是vector所以会出出现这种错误?
      

  3.   

    也没删除什么,这个程序如果不打开新的文档,而是当个文档进行复制粘贴的话,那么程序关掉的时候就会这样:
    d:\visual studio 2008\projects\poissonediting\poissonediting\poissoneditingview.cpp(252) : {902} normal block at 0x022375E0, 24 bytes long.
     Data: <  G     b   /   > 80 C7 47 01 CD CD CD CD 62 00 00 00 2F 00 00 00析构函数主要的工作是释放CFigure *m_pFigure的空间
      

  4.   

    我想问问,vector怎么实现复制粘贴,我是直接用GlobalAlloc ( GMEM_DDESHARE, sizeof(*m_pFigure) );申请空间的是不是这里的问题?
      

  5.   

    GlobalAlloc ( GMEM_DDESHARE, sizeof(*m_pFigure) );
    要使用GlobalFree
    不能使用delete
      

  6.   


    你的意思是在析构函数里面用GlobalFree?我只是在Copy里面用了GlobalAlloc申请内存,而且,我在Paste里面用了GlobalFree释放了