mdi anwendung: objekt bekannt machen - wie geht das?



  • hallo, ich sitze schon seit stunden und überlege wie ich ein problem löse. und zwar habe ich eine klasse geschrieben in der ich daten in dateien speichere. es sollte allerdings nur ein objekt dieser klasse in meiner mdi anwendung geben, da diese zum einen eine kapselung darstellt und zum anderen dafür sorgt, dass nicht gleichzeitig in den dateien geschrieben wird. ich habe dort eine art warteschlange programmiert.

    jetzt ist meine frage folgende:
    wie binde ich dieses objekt am besten in meinen code ein?

    meine überlegung war einen zeiger diesen typs in der anwendung.h zu erstellen:

    // CanwendungApp:
    // Siehe anwendung.cpp für die Implementierung dieser Klasse
    //
    
    class CanwendungApp : public CWinApp
    {
    public:
    	STORAGEClass Store;   //zum speichern und lesen der einstellungen 
    
    public:
    	CanwendungApp();
    
    // Überschreibungen
    public:
    	virtual BOOL InitInstance();
    
    // Implementierung
    	afx_msg void OnAppAbout();
    	DECLARE_MESSAGE_MAP()
    };
    
    extern CanwendungApp theApp;
    

    und in InitInstance(); dann vielleicht initialisieren.

    und jetzt blicke ich nicht mehr durch!

    ich habe 2 CFormViews und einen dialog mit doModal(). in einem FORMVIEW und in dem DIALOG soll 'Store' irgendwie bekannt sein. irgendwie muss das doch gehen.

    ich finde einfach nirgends ein beispiel für so etwas. suche schon seit 2 tagen. ich hoffe in diesem forum kann mir jemand weiterhelfen!!! bitte!!!



  • Schau mal folgenden Link an, vllt. hilfts weiter:

    http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=Singleton#Answ



  • aber mir geht es doch nur darum, wie ich auf eine einzige instanz meine datei klasse aus einem dialog und aus einem formview heras zugreifen kann. allerdings sollte diese instanz bei der gesamten laufzeit am leben sein und immer darauf achten, dass sich die aktionen nicht überschneiden. also keine mehrere schreibzugriffe zur gleichen zeit.


Anmelden zum Antworten