When I am using dll (created by myself or downloaded as Windows Binaries) in debug mode program is crushing while trying to delete iterator (doesn't matter if 'delete iter' or using auto_ptr).
-----------------------------
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
HEAP[kazania.exe]: Invalid Address specified to RtlValidateHeap( 003B0000, 100F3570 )
Windows has triggered a breakpoint in kazania.exe.
This may be due to a corruption of the heap, and indicates a bug in kazania.exe or any of the DLLs it has loaded.
-----------------------------
Call stack is:
kazania.exe!std::auto_ptr<ID3_Tag::Iterator>::~auto_ptr<ID3_Tag::Iterator>() Line 604 + 0x17 bytes
msvcr80d.dll!operator delete(void * pUserData=0x100f3590) Line 54 + 0x10 bytes
msvcr80d.dll!_free_dbg(void * pUserData=0x100f3590, int nBlockUse=1071644672) Line 1194 + 0xd bytes
msvcr80d.dll!_free_dbg_nolock(void * pUserData=0x100f3590, int nBlockUse=1071644672) Line 1252 + 0x30 bytes
-----------------------------
I was googling it and ppl says that memory have to be allocated in the same module that it is deleted, so when I create it in dll dll is supposed to delete it.
Logged In: YES
user_id=1640789
Originator: NO
"_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse))" was the same error I was getting when trying to compile the library with VC8. Try patch 1607260 - "FIX: Access violation occurs when compiled with VC8." That may fix the problem for you.