Merkwürdige Fehler in Standardincludes während der Laufzeit! Drigend!!



  • Hi Leute!
    Also erstmal meine Situation: Ich möchte mit einer While-Schleife alle Einträge aus einer DB (ODBC) in ein CListCtrl schreiben.
    Die Datenbank öffne ich wie folgt:

    CMyDb myDb;
    char error;
    
    try
    {
        myDb.Open(CRecordset::snapshot,NULL,CRecordset::readOnly);
    } catch (CException* e)
    {
        e->GetErrorMessage((LPTSTR)error,255);
    }
    

    Mein Problem ist, dass ich beim Ausführen Fehler bekomme, die eine weiter Ausführung nicht mehr möglich macht. Wenn ich aber Open() weglasse und somit die Datenbank nicht öffne (tu natürlich auch weiter DB-Anweisungen auskommentieren) kommt keiner Dieser Fehler.
    Der VC++.NET Debugger mein nur folgendes:

    'DbVerwaltung.exe': 'D:\Visual Studio Projects\Coniugatio\DbVerwaltung\Debug\DbVerwaltung.exe' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\ntdll.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\kernel32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'D:\Visual Studio Projects\Coniugatio\DbVerwaltung\DbConnection.dll' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\MFC71.dll' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msvcr71.dll' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\gdi32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\user32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\advapi32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\rpcrt4.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\SHLWAPI.DLL' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msvcrt.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\mfc71d.dll' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msvcr71d.dll' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805\comctl32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\oleaut32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\ole32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msvcp71d.dll' geladen, Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\MFC71DEU.DLL' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\uxtheme.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\Programme\Fraps\fraps.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\Programme\Hardware\Logitech\MouseWare\system\LgWndHk.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\odbc32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\comdlg32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\Shell32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\odbcint.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\odbcjt32.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msjet40.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\mswstr10.dll' geladen, Erforderliche DBG-Datei wurde nicht gefunden oder konnte nicht geladen werden.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\odbcji32.dll' geladen, Erforderliche DBG-Datei wurde nicht gefunden oder konnte nicht geladen werden.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msjter40.dll' geladen, Keine Symbole geladen.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\msjint40.dll' geladen, Erforderliche DBG-Datei wurde nicht gefunden oder konnte nicht geladen werden.
    'DbVerwaltung.exe': 'C:\WINDOWS\system32\secur32.dll' geladen, Keine Symbole geladen.
    Warning: ODBC Success With Info, Fehler bei SQLSetConnectAttr-Aufruf für Treiber
    State:IM006,Native:0,Origin:[Microsoft][ODBC Driver Manager]

    DBMS: ACCESS
    Version: 04.00.0000
    ODBC Driver Manager Version: 03.52.0000
    HEAP[DbVerwaltung.exe]: Invalid Address specified to RtlFreeHeap( 00330000, 00B473F0 )
    Unbehandelte Ausnahme bei 0x77f65a58 in DbVerwaltung.exe: Benutzerhaltepunkt.
    HEAP[DbVerwaltung.exe]: Invalid Address specified to RtlFreeHeap( 00330000, 00B471B0 )
    Unbehandelte Ausnahme bei 0x77f65a58 in DbVerwaltung.exe: Benutzerhaltepunkt.
    HEAP[DbVerwaltung.exe]: Invalid Address specified to RtlFreeHeap( 00330000, 00B47340 )
    Unbehandelte Ausnahme bei 0x77f65a58 in DbVerwaltung.exe: Benutzerhaltepunkt.
    HEAP[DbVerwaltung.exe]: Invalid Address specified to RtlFreeHeap( 00330000, 00B46468 )
    Unbehandelte Ausnahme bei 0x77f65a58 in DbVerwaltung.exe: Benutzerhaltepunkt.
    Eine Ausnahme (erste Chance) bei 0x7c17669f (MFC71.dll) in DbVerwaltung.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x51ec8b5d.
    Unbehandelte Ausnahme bei 0x7c17669f (MFC71.dll) in DbVerwaltung.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x51ec8b5d.

    Übrigens die Datenbankverbindung (Also die Klasse) steht in einer DLL, die ich einbinde in mein Projekt per Header.



  • Kann mir keiner Helfen?



  • Such doch mal, wo RtlFreeHeap verwendet wird.

    Außerdem kannst du ja mal mit F11 in Open reindebuggen. So weit runter, bis du die Zeile hast wo es knallt - vielleicht kann man da was erkennen. 🙂
    Hast du schon einmal "Alles neu erstellen" gedrückt? Bei Fehlern wo ich überhaupt keine Idee habe mache ich das erstmal - vielleicht ist es dann ja weg. (Kommt oft genug vor.)



  • Der Fehler liegt in der Klasse CMyDb .



  • Unix-Tom schrieb:

    Der Fehler liegt in der Klasse CMyDb .

    Diese Klasse importiere ich aus einer DLL, die wiederum auch in anderen Programmen verwendet wird. In den anderen Programmen traten allerdings keine Fehler auf.

    estartu_de schrieb:

    Such doch mal, wo RtlFreeHeap verwendet wird.
    Außerdem kannst du ja mal mit F11 in Open reindebuggen. So weit runter, bis du die Zeile hast wo es knallt - vielleicht kann man da was erkennen. 🙂
    Hast du schon einmal "Alles neu erstellen" gedrückt? Bei Fehlern wo ich überhaupt keine Idee habe mache ich das erstmal - vielleicht ist es dann ja weg. (Kommt oft genug vor.)

    Das werde ich gleich mal probieren. Danke für den Tipp.

    Ich hatte im Internet irgendwo eine Seite über die 10 goldenen Regeln der Programmierung gefunden (oder wie das hies). Dort stand, dass öfters Warnungen, die auftreten, oft Fehlerquellen sind, daher hab ich mir die Ausgabe nocheinmal durchgelesen:

    Warning: ODBC Success With Info, Fehler bei SQLSetConnectAttr-Aufruf für Treiber
    State:IM006,Native:0,Origin:[Microsoft][ODBC Driver Manager]

    DBMS: ACCESS
    Version: 04.00.0000
    ODBC Driver Manager Version: 03.52.0000

    So, da hab ich mir Zeug über den Heap und RtlFreeHeap() usw. durchgelsen. Und nun bin ich soweit, dass anscheinden es am Treiber liegt (könnte sein).
    Eine Ursache ist eventuell, dass ich in der Registry ODBC-Einträge bearbeitet habe usw. Vielleicht hab ich mir zum Teil damit Windows erschossen 😕

    Daher werde ich es mal auf anderen Rechnern zusätzlich "untersuchen".


Anmelden zum Antworten