003
10.09.2003, 10:23 Uhr
0xdeadbeef
Gott (Operator)
|
Das hatte ich auch schon rausgekriegt. Bringt aber in diesem Zusammenhang nicht viel, weil das Programm im Release-Modus schon anfängt zu spinnen, bevor es abschmiert. Ich hab aber den Fehler etwas weiter eingrenzen können.
Also, folgendes: Ich hab hier ne von CDialog abgeleitete Klasse, die eine von CWnd abgeleitete Klasse als Control enthält. So ne Art Canvas, in die ich reinmale. Dazu noch ein paar andere Controls, unter anderem eine Gruppe von Radiobuttons und eine ComboBox. Diese schicken, wenn sie selbst ein entsprechendes Signal kriegen (ON_COMMAND_RANGE über die IDs der Radio-Buttons bei der Radio-Button-Group, ON_CBN_SELCHANGE bei der Combobox) per CWnd::PostMessage ein von mir definiertes Signal (WM_SCALECHANGE = WM_USER + 1 und WM_CLIPCHANGE = WM_USER + 2 respektive) an den Canvas. Der hat in seiner Message Map die Signale so:
C++: |
ON_MESSAGE(WM_SCALECHANGE, OnScaleChange) ON_MESSAGE(WM_CLIPCHANGE, OnClipChange)
|
verbunden. In den entsprechenden Methoden wird die Auswahl interpretiert und an andere Funktionen (setScaling und setClipping) weitergegeben, die dann die entsprechenden Member setzen und die Darstellung auf dem Canvas aktualisieren.
Ich bin gerade dabei, das ganze über AfxMessageBoxes zu debuggen. Gibts eigentlich ne Möglichkeit, aus Excel raus eine C++-Dll schrittweise (also im VC+-Debugger) zu durchlaufen? -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |