Access Violation in Release Version



  • Habe ein Programm gebaut welches in der Debug-Version klasse läuft.
    Ist ein SDI mit SplitterWnd.
    Nun habe ich versucht die Release-Version laufen zu lassen.
    Der schmeisst mir jedoch eine Access Violation bei ParseCommandLine raus....

    Weiss jemand warum?!?

    Danke



  • Da wir deinen Source nicht kennen ist es schwierig. Also poste etwas Source.
    Meistens tritt dies aber auf wenn du auf einen Pointer zurgreifst der nicht initialisiert wurde. In der Debug werden IMHO alle nicht initialisierten mit einen defaultwert versehen. Deshalb kein Problem in Debug-Version.



  • Ich habe das gleiche Problem, hier ein bisschen Code dazu

    BOOL CGidooApp::InitInstance()
    {
        // Standardinitialisierung
        // Wenn Sie diese Funktionen nicht nutzen und die Größe Ihrer fertigen 
        //  ausführbaren Datei reduzieren wollen, sollten Sie die nachfolgenden
        //  spezifischen Initialisierungsroutinen, die Sie nicht benötigen, entfernen.
    
        // Ändern des Registrierungsschlüssels, unter dem unsere Einstellungen gespeichert sind.
        // ZU ERLEDIGEN: Sie sollten dieser Zeichenfolge einen geeigneten Inhalt geben
        // wie z.B. den Namen Ihrer Firma oder Organisation.
        SetRegistryKey(_T("Local AppWizard-Generated Applications"));
    
        LoadStdProfileSettings();  // Standard INI-Dateioptionen laden (einschließlich MRU)
    
        // Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
        //  dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.
    
        CSingleDocTemplate* pDocTemplate;
        pDocTemplate = new CSingleDocTemplate(
            IDR_MAINFRAME,
            RUNTIME_CLASS(CGidooDoc),
            RUNTIME_CLASS(CMainFrame),       // Haupt-SDI-Rahmenfenster
            RUNTIME_CLASS(CGidooView));
        AddDocTemplate(pDocTemplate);
    
        // DDE-Execute-Open aktivieren
        EnableShellOpen();
        RegisterShellFileTypes(TRUE);
    
        // Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen
        CCommandLineInfo cmdInfo;
        ParseCommandLine(cmdInfo);
    
        // Verteilung der in der Befehlszeile angegebenen Befehle
        if (!ProcessShellCommand(cmdInfo))
            return FALSE;
    
        // Das einzige Fenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
        m_pMainWnd->ShowWindow(SW_SHOW);
        m_pMainWnd->UpdateWindow();
    
        // Öffnen mit Drag & Drop aktivieren
        m_pMainWnd->DragAcceptFiles();
    
        return TRUE;
    }
    

    Leider hat immerhin der AppWizard diesen Code erstellt, also was läuft hier falsch???

    Für antworten wäre ich sehr dankbar


Anmelden zum Antworten