Seite 1 von 1

Pointer auf Funktionen unter C++?

Verfasst: So Feb 15, 2009 11:37 am
von cloidnerux
Ich habe in einem Programm von mir folgendes Problem:
Ich habe Funktionen extern in cüü Dateien Deklariert, diese Funktionen benötigen aber eine Funktion die in der mian.cpp Deklariert ist.
Jezt habe ich per extern int funktionsname(...); die Funktion als extern Deklariert, das scheint aber nciht zu Funktionieren.
Von C weiß ich das es Pointer auf Funktionen gibt, gibt es diese auch unter C++?

Re: Pointer auf Funktionen unter C++?

Verfasst: So Feb 15, 2009 12:18 pm
von fat-lobyte
cloidnerux hat geschrieben:Ich habe in einem Programm von mir folgendes Problem:
Ich habe Funktionen extern in cüü Dateien Deklariert, diese Funktionen benötigen aber eine Funktion die in der mian.cpp Deklariert ist.
Jezt habe ich per extern int funktionsname(...); die Funktion als extern Deklariert, das scheint aber nciht zu Funktionieren.
Von C weiß ich das es Pointer auf Funktionen gibt, gibt es diese auch unter C++?
Ja die gibt es, die werden dein Problem aber nicht Lösen.
Es ist ganz einfach: Deklariert muss die funktion überall sein, wo du sie verwendest. Das machst du am besten, indem du die Deklaration in einen Header (.hpp) packst, und diesen Header überall dort inkludierst wo du die Funktion benötigst.
Definiert muss die funktion nur ein einziges mal sein, und das ist eigentlich ziemlich egal wo und wie (hauptsache nicht als static, wenn es eine freie funktion ist).


Bitte beachte den Unterschied von Deklariert zu Definiert

Re: Pointer auf Funktionen unter C++?

Verfasst: So Feb 15, 2009 12:44 pm
von cloidnerux
ICh versuchs,
aber die Funktion ist die be******** CALLBACK Funktion von der WinAPI:

Code: Alles auswählen

LRESULT CALLBACK WndProc(	HWND	hWnd,			// Handle For This Window
							UINT	uMsg,			// Message For This Window
							WPARAM	wParam,			// Additional Message Information
							LPARAM	lParam)			// Additional Message Information

Re: Pointer auf Funktionen unter C++?

Verfasst: So Feb 15, 2009 12:46 pm
von fat-lobyte
und? Wo ist das Problem?