我在DLL中new了个对象,然后在主程序中动态装入DLL,调用DLL中的函数在DLL中创建了一个对象,然后返回了这个对象的指针给主程序,可是在主程序中直接delete这个指针要异常,我该怎么做才合法,非常感谢了!

解决方案 »

  1.   

    /*
             * If this ASSERT fails, a bad pointer has been passed in. It may be
             * totally bogus, or it may have been allocated from another heap.
             * The pointer MUST come from the 'local' heap.
             */
            _ASSERTE(_CrtIsValidHeapPointer(pUserData));这是出错的地方,根据报告来看,好象是因为程序认为这个指针的内容不在本地堆上。
    难道说就没什么办法了吗?
      

  2.   

    看来我至少在道理上错了,DLL中NEW的对象,这个对象的知识应该是DLL才知道,所以主程序是没道理可以去删除它的
      

  3.   

    在dll里导出其他的函数去删除那些指针