Menu crasht in Release-Version



  • hi,

    ich habe da eine Dialogfeldbasierte Anwendung, in die ich zwei Menus eingebaut habe. Ein Hauptmenu, das auch in den Eigenschaften des Dialogfelds eingetragen ist, und eines, das ich mit TrackPopupMenu(...) benutze.
    Wenn ich das Projekt als Debug-Version erstelle, läuft alles wunderbar. Stell ich auf Release-Version, stürzt meine Anwendung ab, sobald ich:
    1. In das Hauptmenu klicke
    2. Mit Rechtsklick das Popupmenu öffne (was noch geht) und mit der maus über einen menuepunkt fahre.
    3. Mit Rechtsklick das Popupmenu öffne (was ja noch geht) und dann an eine beliebige andere bildschirmstelle klicke
    ...

    Ich benutze ON_UPDATE_COMMAND_UI um das Anzeigen/Nichtanzeigen der Menupunkte zu steuen. Das funzt auch wunderbar. Hab das auch mal alles auskommentiert, aber die anwendung stürzt trotzdem ab... muss also an was anderem liegen

    ich bin da recht ratlos. die fehlersuche ist schwer, ich kann ja nich debuggen im releasebuild 😞

    Muss ich CDialog vielleicht irgendwie auf die benutzung von Menus vorbereiten 😕
    vielleicht hat jemand ne idee ???

    grüsse



  • In der FAQ findest du einen Thread der erklärt warum in der Debug alles Funzt und in der Release nicht.
    Da bekommst du einen Ansatz wonach du suchen musst.



  • danke für deine antwort, ich hab mir das schon angeschaut ...
    hilft mit leider nicht weiter, weil der crash nicht innerhalb meines codes passiert, sondern irgendwo in der mfc ...

    hab jetzt mal n bissi rumprobiert und folgendes festgestellt:

    Wenn ich in das Hauptmenu klicke, crashts noch vor OnInitMenu ..., öffne ich das rechtsklickpopup gibts erst danach den absturz.

    Was wird denn alles Aufgerufen, wenn ein Menu geöffnet wird?
    Zuerst kommt, nehme ich an, ein SysCommand, entweder SC_KEYMENU oder SC_MOUSEMENU,
    Dann wird noch OnInitMenu und OnMenuSelect und die OnUpdateCommandUI´s ausgeführt. Hab ich was vergessen? ... Passiert noch was danach?

    hm ... vielleicht fällt ja jemandem noch was ein, wäre sehr dankbar für alle infos.

    grüsse



  • trara ... habs gelöst...

    irgendwie wollte die mfc nicht, das ich auf WM_MENUSELECT reagiere.
    ich benutze jetzt WM_INITMENU um meine aufgaben zu erledigen ...

    danke trotzdem für die aufmerksamkeit 🙂

    grüsse

    PS: wer detaillierter wissen will was ich da warum mache kann gerne fragen 🙂


Anmelden zum Antworten