关于把class做成dll后,使用起来很怪的问题
我使用VC6 sp6。
我有一个类CMy,里面有new出内存的操作,在析构函数里面把new出来的内存释放掉,我这个析构函数做成虚函数,为了以后可以让其他类继承CMy。我这个类使用过好几年了,都很好用。
我在程序里面使用这个类,CMy *p = new CMy;在结束之前delete p;一切正常。如果这样用CMy m;也一切正常。
现在我说一下很怪的问题。
我把类CMy做成一个dll。
1。如果这样用CMy m;一切正常。
2。CMy *p = new CMy;在结束之前delete p;这样使用就回出错,在delete p处设置断点,只要一执行delete操作,系统就提示出错。"Debug Assertion Failed.Expression:_CrtIsValidHeapPointer(pUserData)."
3。我如果把CMy的析构函数不写成虚函数,那么
用CMy m;一切正常。
CMy *p = new CMy;在结束之前delete p;也一切正常。
请问怎么回事?