PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Klassen


TekWarrior
10.08.2002, 22:09
Wie kann ich in einer Memberfunktion einer Klasse die Adresse einer anderen Memberfunktion in der selben Klasse bekommen?
Die andere Memberfunktion ist eine Window Proc.

Mit
WNDCLASS wc;
wc.lpfnWndProc = this->m_WndProc;

bekomm ich die Fehlermeldung

error C2440: '=' : 'long (__stdcall CDXWin::*)(struct HWND__ *,unsigned int,unsigned int,long)' kann nicht in 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' kon
vertiert werden

und mit
wc.lpfnWndProc = (WNDPROC)this->m_WndProc;
bekomm ich die Fehlermeldung
error C2440: 'type cast' : '' kann nicht in 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' konvertiert werden
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein

Compiler MS VC++6.0


vc++oder711
15.08.2002, 11:29
Hi du ,

error C2440: '=' : 'long (__stdcall CDXWin::*)(struct HWND__ *,unsigned int,unsigned int,long)' kann nicht in 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' kon
vertiert werden

so wie das hier aussieht hast du ein MAINwindow HWND..
du versucht offensichtlich 2 Strukturen mtieinander zu verbinden ?..

erklär mal genauer...

Codemasta
15.08.2002, 14:53
Man man man... ein bischen Grundwissen müsst man schon haben. Du musst die WndProc, wenn sie in einer Klasse ist, static machen, da sonst ein this-parameter mitgegebn wird, und dann stimmt der Pointer-Type nimmer.

StoreMaster
15.08.2002, 22:38
@Codemasta
Nicht gleich so unfreundlich bitte, oder bist du mit deinem vermeindlichen wissen auf die welt gekommen?!