kann auf meine mVariable nicht zugreifen?!



  • Hallo Leute,

    mhh - wie fang ich jetzt nur an? Es ist so, dass ich den Inhalt meines RichEditFelds speichern will. Habe rausgefunden, dass das mit der Funktion StreamOut funktioniert. Soweit kein Problem.
    Es ist jetzt so, dass ich eine statische Memberfunktion(CALLBACK-Funktion) habe, inder ich gern mit meiner Membervariablen(hier soll der formatierte Inhalt vom RTF gespeichert werden) arbeiten würde. Aber der Compiler sagt mir, dass das nicht geht 😕

    Was meint ihr?

    Meine Klasse:

    class Result : public CDialog
    {
    public:
    	static DWORD CALLBACK StreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);
    	CString m_fileData;
    	CStriing m_ctrlAusgabeT;
        CString m_savepath;
            ...
    }
    

    die mFunktion:

    DWORD CALLBACK Result::StreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
    {
    	CString* pString = (CString*)dwCookie; 
        *pcb = min(pString->GetLength(), cb);
    	m_fileData = pbBuff;
    
    	return 0;
    }
    

    Aufruf der Funktion:

    EDITSTREAM savefile;
    	savefile.dwCookie = (DWORD)&m_ctrlAusgabeT;    //Ctr meines RichEdit Felds
    	savefile.pfnCallback = StreamOutCallback; 
    
    	m_ctrlAusgabeT.StreamOut(SF_RTF, savefile);    //Aufruf der mFunktion
    
        ofstream rout;  
        //Speichern des (formatierten) Inhalts von m_fileData
        rout.open(m_savepath, ios::out);               //m_savepath = Pfad + Dateiname
        rout << m_fileData;
        rout.close();
    

    Ich kann zwar ein Objekt von Result erstellen und so auf die mVariable zugreifen, nur sobald ich ja aus der func() draußen bin, ist der Inhalt auch weg 😞 - was ja klar ist.

    Kann mir einer sonst ne Möglichkeit nennen, wie ich darauf zugreifen kann?

    Danke + Gruß
    Kitty



  • hat sich erledigt. hab's hinbekommen.

    Gruß Kitty


Anmelden zum Antworten