Zugriff auf CStdioFile
-
Hallo Zusammen!
Ich versuche einen recht einfachen Parser zu schreiben. Dafür lese ich die Daten mit
CString StrLesen = ""; filein.Open(pathName, CFile::modeRead | CFile::typeText); filein.ReadString(strLesen);ein und schreibe sie mit
fileout.Open(New, CFile::modeCreate | CFile::modeWrite | CFile::typeText); fileout.WriteString("}\n");immer wenn ich mit
strLesen.Findein "Schlagwort" finde.
Ich füge prinzipiell immer den gleichen Text in die neue Datei ein... nur halt mit anderen Variablen. Deswegen wollte ich das einfügen auslagern. Aber wenn ich das in ne separate Funktion schreibe
void test(CStdioFile fileout, CStdioFile filein) { CString strLesen; double X, Y, w; int i; for(int j=0; j <= 10 ; ++j) { filein.ReadString(strLesen); i++; if (strLesen.Find("GPinX",0) >= 0) { CString a, b, ausgabe ; AfxExtractSubString(a, strLesen, 1, '>'); AfxExtractSubString(b, a, 0, '.'); X = atof(b)/10000; } if (strLesen.Find("GPinY",0) >= 0) { CString a, b, Translation ; AfxExtractSubString(a, strLesen, 1, '>'); AfxExtractSubString(b, a, 0, '.'); Y = atof(b)/10000; Translation.Format("translation %f 0 %f\n", X,Y); fileout.WriteString(Translation); } if (strLesen.Find("Angle",0) >= 0) { CString a, b, Rotation ; AfxExtractSubString(a, strLesen, 1, '>'); AfxExtractSubString(b, a, 0, '<'); w = atof(b)* -1; Rotation.Format("rotation 0 1 0 %f\n", w); fileout.WriteString(Rotation); } } }bekomme ich den Fehler C2248.

Is ja sicherlich weil ich auf die CStdioFiles zugreifen will... oder? Weiß nich was ich machen muss... Stell mich glaub ich einfach bissl dumm an
Wär für jede Hilfe dankbar.
-
In der MSDN lässt sich übrigens wunderschön nachlesen, was dieser Fehler bedeutet: http://msdn.microsoft.com/de-de/library/tsbce2bh.aspx
In Verbindung mit der vom Compiler angemeckerten Zeile solltest Du der Lösung ziemlich nahe kommen.
-
Wenn du mir sagst, wo ich rausbekomme welche Zeile in meinem selbstgeschriebenen Code betroffen ist...
Er sagt ja immer nur1>c:\programme\microsoft visual studio 9.0\vc\atlmfc\include\afx.h(1116) : error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'Und in der afx.h ist es dann
protected: BOOL m_bCloseOnDelete; CString m_strFileName; };von dem virtual CFile... Hilft mir also nich so richtig

Sry wenn ich mich dumm anstelle
-
Ich würde zumindestens die Argumente als Referenz übergeben:
void test(CStdioFile& fileout, CStdioFile& filein)Ansonsten zeigt der Code auf dem ersten Blick nichts ungewöhnliches.
-

Das war das Problem
DANKE 