Hilfe! Fehlermeldung



  • Hallo
    ich bekomme eine Fehlermeldung mit der ich nichts anfangen kann.
    Kleiner Überblick:
    Habe folgenden Code aus der C++ FAQ benutzt:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-81908-and-highlight-is-formview.html
    Es klappte auch alles mit dem Wechseln solange ich nicht bei beiden Views Variablen deklariere
    Doch wenn ich das tue und dann im Programm die Ansicht 2 mal wechsel(also zu ansicht B und wieder zurück auf Ansicht A wechsel) erhalte ich zur Laufzeit diese Fehlermeldung:

    Microsoft Visual C++ Debug Library

    Debug Error!

    Programm: ...AdoServer.exe
    DAMAGE: after Client block(#198) at 0x00327A20

    Wenn ich dann auf wiederholen klicke wird mir folgendes angezeigt:

    Unbehandelte Ausnahme bei 0x1020a26b (msvcr71d.dll) in AdoServer.exe: Benutzerhaltepunkt.

    und gelange zu diesem Code ( kommt aus der dbgheap.c):

    /*
             * 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));
    
            /* get a pointer to memory block header */
            pHead = pHdr(pUserData);
    
            /* verify block type */
            _ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
    
            /* if we didn't already check entire heap, at least check this object */
            if (!(_crtDbgFlag & _CRTDBG_CHECK_ALWAYS_DF))
            {
                /* check no-mans-land gaps */
                if (!CheckBytes(pHead->gap, _bNoMansLandFill, nNoMansLandSize))
                    _RPT3(_CRT_ERROR, "DAMAGE: before %hs block (#%d) at 0x%p.\n",
                        szBlockUseName[_BLOCK_TYPE(pHead->nBlockUse)],
                        pHead->lRequest,
                        (BYTE *) pbData(pHead));
    
                if (!CheckBytes(pbData(pHead) + pHead->nDataSize, _bNoMansLandFill, nNoMansLandSize))
                    _RPT3(_CRT_ERROR, "DAMAGE: after %hs block (#%d) at 0x%p.\n",
                        szBlockUseName[_BLOCK_TYPE(pHead->nBlockUse)],
                        pHead->lRequest,
                        (BYTE *) pbData(pHead));           // Hier hält der Code an
            }
    

    Ich hoffe ihr könnt mir weiter helfen.



  • Du hast Speicher überschrieben, was nicht zulässig war...
    Eigentlich solltest Du das Programm debuggen können, wenn der Fehler auftritt...


Anmelden zum Antworten