wxSmith bringt mir einen unbekannten Fehler (tbar95.cpp)



  • Hallo

    also beim 'builden' zeigt er mir keine fehler an.
    doch wenn ich es starte kommt die Fehlermeldung:

    ../../msw/tbar95.cpp(705): assert "wxAssertFailure" failed in Realize(): invalid tool button bitmap

    was bedeutet der? kann mir kein Reim draus machen.
    könnt Ihr mir bitte helfen

    ein auszug aus meiner main.cpp

    //(*Initialize(...Frame)
        Create(parent, id, _("bio..."), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxCLOSE_BOX|wxMINIMIZE_BOX, _T("id"));
        SetClientSize(wxSize(750,550));
        SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENU));
        ListCtrl1 = new wxListCtrl(this, ID_LISTCTRL1, wxPoint(4,80), wxSize(742,216), wxLC_REPORT, wxDefaultValidator, _T("ID_LISTCTRL1"));
        TextCtrl1 = new wxTextCtrl(this, ID_TEXTCTRL1, _("Text"), wxPoint(4,304), wxSize(742,240), 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
        tbMain = new wxToolBar(this, ID_TOOLBAR1, wxDefaultPosition, wxDefaultSize, wxTB_FLAT|wxTB_HORIZONTAL|wxTB_TEXT, _T("ID_TOOLBAR1"));
        tbMain->SetToolBitmapSize(wxSize(35,35));
        ToolBarItem1 = tbMain->AddTool(ID_TOOLBARITEM1, _("Beenden"), wxNullBitmap, wxNullBitmap, wxITEM_NORMAL, _("Anwendung beenden"), wxEmptyString);
        tbMain->AddSeparator();
        ToolBarItem2 = tbMain->AddTool(ID_TOOLBARITEM2, _("Start"), wxNullBitmap, wxNullBitmap, wxITEM_NORMAL, _("Alle Module starten (rechts klicken für ein Modul)"), wxEmptyString);
        ToolBarItem3 = tbMain->AddTool(ID_TOOLBARITEM3, _("Stop"), wxNullBitmap, wxNullBitmap, wxITEM_NORMAL, _("Alle Module stoppen (rechts klicken für ein Modul)"), wxEmptyString);
        tbMain->AddSeparator();
        ToolBarItem4 = tbMain->AddTool(ID_TOOLBARITEM4, _("Extras"), wxNullBitmap, wxNullBitmap, wxITEM_NORMAL, _("Extramenü"), wxEmptyString);
        tbMain->AddSeparator();
        ToolBarItem5 = tbMain->AddTool(ID_TOOLBARITEM5, _("Einstellungen"), wxNullBitmap, wxNullBitmap, wxITEM_NORMAL, _("Globale Einstellungen (rechts klicken für Moduleinstellung)"), wxEmptyString);
        tbMain->Realize();
        SetToolBar(tbMain);
        MenuItem1 = new wxMenuItem((&menuStart), ID_MENUITEM1, _("New Menu 1"), wxEmptyString, wxITEM_NORMAL);
        menuStart.Append(MenuItem1);
        MenuItem2 = new wxMenuItem((&menuStart), ID_MENUITEM2, _("New Menu 2"), wxEmptyString, wxITEM_NORMAL);
        menuStart.Append(MenuItem2);
        MenuItem3 = new wxMenuItem((&menuStart), ID_MENUITEM3, _("New Menu 3"), wxEmptyString, wxITEM_NORMAL);
        menuStart.Append(MenuItem3);
        Center();
    
        Connect(ID_TOOLBARITEM1,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&biostreamFrame::OnToolBarItemCloseClicked);
        Connect(ID_TOOLBARITEM2,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&biostreamFrame::OntbStartClicked);
        Connect(ID_TOOLBARITEM2,wxEVT_COMMAND_TOOL_RCLICKED,(wxObjectEventFunction)&biostreamFrame::OntbStartRClicked);
        Connect(wxID_ANY,wxEVT_CLOSE_WINDOW,(wxObjectEventFunction)&biostreamFrame::OnClose);
        //*)
    

  • Mod

    Das Bitmap scheint ungültig zu sein, was du für die Toolbaritems da angibst 😉



  • na die Bitmaps hab ich ja schon rausgenommen, deshalb steht ja jetzt wxNullBitmap da

    was kann ich noch machen?
    kann auch gerade kein neues wxToolBar hinzufügen!?



  • Kommentiere alle ToolbarItems ausser einem aus und teste bei welchem der Fehler auftritt.

    Setze bei tbMain->Realize(); einen Breakpoint und steppe mit dem debugger durch.



  • Danke

    also es liegt an jedem
    wenn ich alle auskommentiere geht es, sonst ni

    is ja weiterhin ni tragisch, kann man ja neu machen, aber wenn ich alle auskommentiere startet sich das programm für ne millisekunde (also ich seh das sich was öffnet) und schließt sich aber im gleichen moment und im BuildLog steht nur:

    Process terminated with status -1 (0 minutes, 0 seconds)



  • kommentiere mal
    tbMain->SetToolBitmapSize(wxSize(35,35));
    aus.



  • Hi

    Ja hab ich auch schon probiert aber kommt der selbe fehler

    irgendwo muss da noch ein Fehler sein.

    bestimmt nur was kleines unauffälliges mit großer Auswirkung 😃



  • so habs gefunden
    war wie ich schon dachte ein kleiner fehler

    ich hab bei der Initialisierung des Frames, vorher eine funktion abgefragt, die LoadConfig();

    //(*AppInitialize
        bool wxsOK = true;
        wxInitAllImageHandlers();
    
        wxsOK = LoadConfig();
    
        if ( wxsOK )
        {
        	...
        	Frame->Show();
        	SetTopWindow(Frame);
        }
        //*)
    

    doch die Funktion lieferte keien boolschen Wert zurück, im grunde garkeinen, das hab ich geändert und es ging

    der compiler scheint ni der beste zu sein, den er hätte das ja mitbekommen müssen und mir fehler anzeigen bei fehlender parameterübergabe oder so, theoretisch hätte auch ni in die if anweisung reinspringen können und das frame->show auszuführen, hat er aber gemacht, aus welchen grund auch immer
    jetzt geht es

    Danke für eure Hilfe,
    werd demnächst bestimmt neue probleme haben 🤡 :p

    achja eins noch: Wie schreibe ich eine LEERZEILE in eine ini.Datei???


Anmelden zum Antworten