Auf die Änderung einer Variable reagieren
-
Hi Leute, ich hab jetzt die Schnautze voll von der Callbackfunktion, funzt alles nicht so, wie es sollte.
Gib es eine Möglichkeit auf die Änderung einer globalen Variable zu reagieren, und das ohne Timer?
-
Wie haste das denn bisher gemacht? Ich hätte Signals benutzt.
-
Direkt nicht. Du kannst aber die globale Variable verstecken und nur per set-Methode den Zugriff gestattet. Daduch bekommst du natürlich mit, wenn die Variable geändert wird und kannst in der Methode entsprechend reagieren.
Evtl. ne Klasse welche nur statische Element enthält oder sowas in der Art um das zu realisieren.
-
Das er als C++ler gekapselte Variablen hat, sollte selbstverständlich sein. Es geht doch nur darum, wie er auf Änderungen reagieren kann? Und da würde ich Signals aus Boost benutzen.
Wenn er eine globale und nicht gekapselte Variable hat, sollte man ihn verhauen!
Nein, im ernst: dann schnell die Variable in ein Singleton kapseln und signal/slot-Technik von Boost dran pappen.
Problem gelöst.
-
boost hab ich noch nicht verwendet, kann ich nichts zusagen. Aber so oft wie das hier im Forum erwähnt wird, kann es ja nur gut sein
Ansonsten bei solchen "Querabhängigkeiten" für ich auch gern Schnittstellen ein, welche eine abstrakte Methode besitzen, die natürlich überschrieben werden muss.
Dort wo's gebraucht wird, erbt man von der Schnittstelle und überschreibt halt die abstrakte Methode. So könnte die Schnittstelle eine set-Methode für die Variable haben, welche u.a. dann die abtrakte Methode aufruft.
Kann man natürlich nicht immer anwenden, kommt auf den Kontext drauf an!!!
-
Was ist jetzt verdammt noch mal boost ?
Und was meinst du jetzt mit gekapselten Variablen
Ich kenne nur globale und locale
-
boost ist eine Bilbiothek die es kostenlos gibt(aber nicht umsonst^^)
Mit kapseln meinen wir, dass deine Variable einer Klasse angehört und nicht als globale Variable im Raum rumschwirrt, weil globale Variablen meist nicht soo toll sind und es eigentlich immer alternativen gibt
-
Mhh ok ;>
Und natürlich ist meine glob Var nicht gekapselt, weil die eine Funktion nicht von meiner Klasse abgeleitet ist, sondern aus einer DLL verwendet wird.
Deshalb hatte ich halt auch die Probleme auf die Variablen meines Programms zuzugreifen. Habs dann über Zeiger probiert, da hing sich mein Programm für paar Sek aufDie Sache ist die, es gibt schon ein fertiges C Programm mit while und khbit, funzt auch wunderbar, ich wollte es auf MFC umschreiben, jetzt sitz ich in der kagge
-
kannst du die DLL verändern oder musst du sie nutzen, so wie sie vorliegt?
-
Leider ja, ich darf an der DLL nichts verändern