Acces Violation



  • Hallo an alle,

    ich hab für mich ein unverständliches Problem und zwar,
    wenn ich diese Methode aufgerufe:

    if (CKernel::createNewUser(u_UserName, u_DefaultUser)){
    ...
    }
    

    und sobald das Programm in dieser Methode sich befindet:

    bool CKernel::createNewUser(CString username, CString defaultname)
    {
    ...
    }
    

    ...bekomme ich von dem Debugger eine Access Violation zurück.

    ich weiss nicht, warum er zum T..... das macht?

    Hat einer Rat für mich?

    Gruss,

    chullain



  • chullain schrieb:

    Hat einer Rat für mich?

    Klar. Schau dir den Code genau an, um den Fehler zu finden. Uns zeigst du ihn ja nicht.

    Oder benutz den Debugger.



  • ich benutz' ja auch den Debugger...das Programm selbst stürzt ja beim Durchlauf nicht ab, sondern beim Debuggen habe ich zufällig den Fehler entdeckt, weiss aber nicht, was da los sein kann...

    ...dieser Fehler taucht halt bei diesem Sprung in die Methode auf...
    ..darum habe ich auch nur diese beide Auszüge vom Code gezeigt...
    1. der Aufruf der Methode und
    2. die Deklaration der Methode
    ...der Code innerhalb der Methode ist nicht von Bedeutung, weil da ja schon der Fehler längst passiert ist...

    gruss,

    chullain



  • Hallo,

    ich hatte vor kurzem einen ähnlichen Fehler. Bei mir war es so, dass ich die vtable des Objektes ausversehen überschrieben hatte, so dass der Funktionspointer meiner Funktion ins Nirvana zeigte. Vielleicht geht dein Problem in diese Richtung.

    Grüße
    Peter



  • Wie lautet die genaue Fehlermeldung?
    Wie sieht der Callstack (Aufrufliste) zum Zeitpunkt der Access Violation aus?
    Welchen Typ haben u_UserName und u_DefaultUser?
    Welchen Wert haben sie zum Zeitpunkt des Aufrufs?



  • MFK schrieb:

    Wie lautet die genaue Fehlermeldung?

    Nicht abgefangene Ausnahme in SCA.exe (MFCO42D.DLL): 0xC0000005: Access Violation.

    MFK schrieb:

    Wie sieht der Callstack (Aufrufliste) zum Zeitpunkt der Access Violation aus?

    CKernel::createNewUser(CString {"cb1test"}, CString {"guest"}) line 925
    CKernel::compareUsersList() line 871 + 90 bytes
    CKernel::updateSagentUser() line 655 + 8 bytes
    main(int 1, char * * 0x00bd1780) line 68 + 11 bytes
    mainCRTStartup() line 338 + 17 bytes
    KERNEL32! 77f1b9ea()
    

    MFK schrieb:

    Welchen Typ haben u_UserName und u_DefaultUser?

    ...beide CString

    MFK schrieb:

    Welchen Wert haben sie zum Zeitpunkt des Aufrufs?

    u_UserName = "cb1test"; u_DefaultUser = "guest"

    gruss,

    chullain



  • Hast du da eine Konsolenanwendung?
    Hast du MFC in den Projekteinstellungen aktiviert?
    Hast du irgendwo eine CWinApp-Instanz oder rufst irgendwo AfxWinInit auf?


Log in to reply