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 gehtWas 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