Kein Zugriff auf private Member...
-
Ich sehe nicht wo in meiner Klasse etwas als private definiert ist. Der Fehler ist folgender
error C2248: "CObject::CObject": Kein Zugriff auf private Member, dessen Deklaration in der CObject-Klasse erfolgte.
c:\programme\microsoft visual studio 8\vc\atlmfc\include\afx.h(558): Siehe Deklaration von 'CObject::CObject'
c:\programme\microsoft visual studio 8\vc\atlmfc\include\afx.h(529): Siehe Deklaration von 'CObject'
Diese Diagnose trat in der vom Compiler generierten Funktion "CDC::CDC(const CDC &)" auf.Der Aufruf bei dem das passiert ist
BOOL Result = BitmapOperations.WriteWindowToDIB2((LPCTSTR)csFileName, dc, rect);aus der Funktion
void CGraphCtrl::SaveBitmap(CString csFileName) { CPaintDC dc(this); CRect rect=GetSize(); BOOL Result = BitmapOperations.WriteWindowToDIB2((LPCTSTR)csFileName, dc, rect); }mit
#include "BitmapPicture.h" class CGraphCtrl : public CStatic { ... public: void SaveBitmap(CString csFileName); CBitmapPicture BitmapOperations; ...class CBitmapPicture : CBitmap { public: CBitmapPicture(void); ~CBitmapPicture(void); private: int GetMaxX(CDC* dc); public: BOOL WriteWindowToDIB2( LPCTSTR szFile, CPaintDC dc, CRect rect); }was ist davon nun private?
Matthias
-
mach mal aus
class CBitmapPicture : CBitmapeinfach folgendes:
class CBitmapPicture : public CBitmap
-
(D)Evil schrieb:
mach mal aus
class CBitmapPicture : CBitmapeinfach folgendes:
class CBitmapPicture : public CBitmapOk, verstehe ich.
Jetzt habe ich allerdings das ': public CBitmap' ganz rausgenommen, da ich es nicht mehr brauche. Jetzt bekomme ich wieder diese Fehlermeldung und sehe nicht was jetzt wieder fehlen sollte, da vorher alles funktioniert hat. Der Fehler tritt auch wieder an derselben Stelle auf.BitmapPicture.h
#pragma once class CBitmapPicture { public: CBitmapPicture(void); ~CBitmapPicture(void); public: //BOOL WriteWindowToDIB( LPCTSTR szFile, CWnd *pWnd ); BOOL WriteWindowToDIB( LPCTSTR szFile, CPaintDC dc, CRect rect); BOOL WriteDIBToFile( LPCTSTR szFile, HANDLE hDIB); HANDLE DDBToDIB( CBitmap& bitmap, DWORD dwCompression, CPalette* pPal ) ; BOOL LoadBMPImage( LPCTSTR sBMPFile, CBitmap& bitmap, CPalette *pPal ); };GraphCtrl.h
#pragma once #include "afxwin.h" #include "memdc.h" #include <vector> #include "BitmapPicture.h" using namespace std; class CGraphCtrl : public CStatic { // Construction ... // Implementation public: ... CBitmapPicture BitmapOperations; // Generated message map functions ... };Der Fehler tritt wieder auf bei
BOOL CGraphCtrl::SaveBitmap(CString csFileName) { CPaintDC dc(this); PlotToDC(&dc); BOOL Result = BitmapOperations.WriteWindowToDIB((LPCTSTR)csFileName,dc, GetSize());1>GraphCtrl.cpp
1>c:\programme\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(931) : error C2248: "CObject::CObject": Kein Zugriff auf private Member, dessen Deklaration in der CObject-Klasse erfolgte.
1> c:\programme\microsoft visual studio 8\vc\atlmfc\include\afx.h(558): Siehe Deklaration von 'CObject::CObject'
1> c:\programme\microsoft visual studio 8\vc\atlmfc\include\afx.h(529): Siehe Deklaration von 'CObject'
1> Diese Diagnose trat in der vom Compiler generierten Funktion "CDC::CDC(const CDC &)" auf.mir fehlt im Moment der Anhaltspunkt wie ich das ganze debuggen soll.
Matthias
-
CPaintDC ist nicht kopierbar, den kannst du nicht by value übergeben.