100% CPU Ausnutzung
-
Hi,
ich habe folgendes Problem:
Meine Anwendung basiert auf 2 Dialog-Boxen (eine modale und eine modeless), beide besitzen eine eigene Callback Funktion. Wenn ich jetzt die 2te (die modeless) Form anzeige, verbraucht meine Anwendung 100% Leistung der CPU, und die Form wird garnicht, oder nur halb angezeigt (da die Nachrichten nichtmehr richtig verarbeitet werden können). Lasse ich die 2te ohne eigene Callback anzeigen, ist alles normal, sobald sie jedoch eine Callback Funktion hat, auch wenn sie nur leer ist, wird 100% Leistung verbraucht.
Weiterhin komisch daran ist, dass das nur im Release-Build passiert, im Debug-Build ist alles so wie es sein sollte.
Ich hab leider keine Ahnung wie ich dieses Problem beheben könnte. Hat jemand eine Idee, was ich falsch machen könnte bzw. wie ich es beheben könnte? Ich bin für jeden Idee offen. Danke!
-
Wie sieht denn deine Callback aus? Hast du das beachtet:
Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message.
-
Wenn du einmal eine Modale Dialogbox aufgemacht hast, darfst du keine unmodalen Dialoge mehr aufmachen, bis die modale Dialogbox geschloßen ist.
-
Ja, das return(TRUE/FALSE) hab ich beachtet, das kann es nicht sein.
Ich weiss nicht, ob das zum Problem beiträgt. Aber die modeless Dialogbox wird als Child in der modalen dargestellt. Wenn ich nach einer modalen Dialogbox keine weiteren Dialogboxen öffnen kann, gibt es dann eine möglichkeit einen Template der im Resource-Editor erstellt wurde als normales Fenster anzuzeigen?
-
Glücklicherweise hab ich das Problem mittlerweile gefunden, und wie immer, war es etwas ganz dummes:
Die Callback Funktion der 2ten Dialog-Box hatte als Rückgabe-Wert den Typ bool, normalerweise sollte es aber der Typ BOOL sein. Naja, wer kann schon davon aussgehen, dass BOOL kein boolinischer Typ ist, sondern ein umdefinierter Integer? Komisch ist auch, dass im Debug-Modus BOOL und bool scheinbar gleich sind. Aber solang es jetzt funktioniert, ist ja alles wunderbar.
Vielen Dank für die Hilfe!