Instanz einer Klasse, die immer verfügbar ist
-
Hi,
ich versuche gerade als relativer MFC-Neuling einen embedded-Server von mysql über die MFC anzusprechen. Dazu möchte ich mehrere Menüs haben, die ensprechende Aktionen auslösen. (Server starten, mit Datenbank verbinden, verschiedene MySQL-Abfragen ausführen,...) Dazu muss ich der entsprechenden Methode (über ne DLL eingebunden) immer einen pointer mitgeben, der auf die aktuelle Datenbank zeigt.
Dazu bräuchte ich also eine Klasse, deren Instanz nicht nur mit jedem Aufruf eines Dialogs neu instanziert wird, sondern deren Instanz die ganze Zeit vorhanden ist und die ich dann in den Menüs bzw. Dialogen anspreche.
Ich hab schon probiert, eine Klasse von CView abzuleiten und auf die dann immer die Ereignishandler zu legen, das funktioniert aber halt nicht, weil ich ja noch keine Instanz der Klasse gebildet habe. Somit läuft der Handler irgendwie ins Leere
Wie sollte man das den richtig machen? Oder ist mein Ansatz komplett falsch?Gruß Squeegee
-
Pack das doch in die App-Klasse. An die kommst du von überall mir AfxGetApp ran.
-
Hi,
nein, dein ansatz ist sogar absolut richtig!
Du solltest dich daher einmal mit dem Singleton-Pattern auseinandersetzen.
Das Schlagwort sollte genügen, um genug Treffer bei Google zu bekommen.Im Prinzip ist es eine statische Klasse, die nur einmal erzeugt werden kann,
jedoch in deinem ganzen Projekt verwendbar ist und dir den Zugriff auf z.B.
eine Datenbank ermöglicht.Gruss
EB