![]() |
【转帖】memory leaks or my error in queryx function
memory leaks or my error in "queryx" function?
memory leaks or my error in "queryx" function? memory leaks in "queryx" function or my error? i use odamfcappdll with visual studio 6. for to see the problem you can modify the funcion oneditacisconversion() if (!pnewobj.isnull()) { // test memory lek if (((oddbentityptr )pnewobj)->iskindof(oddbpolyfacemesh::desc())) { oddbpolyfacemeshptr ppoly = ((oddbentityptr )pnewobj); oddbobjectiteratorptr piter = ppoly->vertexiterator(); for (; !piter->done(); piter->step()) { oddbpolyfacemeshvertexptr pvertex = piter->entity()->queryx(oddbpolyfacemeshvertex::desc()); } } // end test pent->handoverto(pnewobj); } you can read the attach file called "region.dwg". when you exit from application several memory leak appear. it is a my error in use of queryx? thank's for help. attached files how can i obtain vertex and face of polyfacemesh without use queryx? try next code - in this case no memory leak // test memory lek if (((oddbentityptr )pnewobj)->iskindof(oddbpolyfacemesh::desc())) { oddbpolyfacemeshptr ppoly = ((oddbentityptr )pnewobj); oddbobjectiteratorptr piter = ppoly->vertexiterator(); for (; !piter->done(); piter->step()) { oddbentityptr pentity = piter->entity(); if (pent->iskindof(oddbpolyfacemeshvertex::desc())) { oddbpolyfacemeshvertexptr pvertex = piter->entity(); } if (pent->iskindof(oddbfacerecord::desc())) { oddbfacerecordptr precord = piter->entity(); } if (pent->iskindof(oddbsequenceend::desc())) { oddbsequenceendptr psqend = piter->entity(); } } } // end test great!your code work fine without memory leak. it is only change pent with pentity. is it a good idea change code in class oddbpolyfacemesh_dumper in example odreadexdll and odreadex? thanks a lot |
所有的时间均为北京时间。 现在的时间是 09:35 PM. |