PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Funktionszeiger in C++


Brillus
2004-03-16, 16:49:11
Ich habe hier schon oft unsere OpenGl Programmier über Funktionszeiger diskutiern gesehen. Habe aber noch nirgends was genaues darüber gefunden.
Daher mal die frage wie erstellt man sie unter C++, wie übergibt man ihnen die Adresse der Funktion und wie greift man dann über sie auf die Funktion zu.

Xmas
2004-03-16, 18:56:23
Wenn du Englisch kannst: http://www.function-pointer.org/fpt.html

Kurz gesagt:

// eine Funktion:
int machwas(int i) { return i; }

// Funktionspointer
int (*fp)(int);

// Zuweisen
fp = machwas;

// Aufrufen
int i = fp(3);

Wenn du konkret Extension-Funktionen zu OpenGL meinst - wglGetProcAddress (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/ntopnglr_6yer.asp) liefert unter Windows die Funktionspointer zurück. Dann solltest du noch eine aktuelle glext.h haben (sollte man AFAIK auf http://www.opengl.org finden, oder bei ATI oder NVidia auf der Developer-Seite), in der die ganzen Typen schon definiert sind.

Hier gibt es noch elegantere Wege, nur hab ich dazu gerade nichts zur Hand.

marco42
2004-03-16, 19:40:32
Original geschrieben von Brillus
Ich habe hier schon oft unsere OpenGl Programmier über Funktionszeiger diskutiern gesehen. Habe aber noch nirgends was genaues darüber gefunden.
Daher mal die frage wie erstellt man sie unter C++, wie übergibt man ihnen die Adresse der Funktion und wie greift man dann über sie auf die Funktion zu.

http://www.function-pointer.org/

Brillus
2004-03-16, 22:46:57
Danke euch beiden werde es morgen früh im Infounterricht ausprobiern. Dateiarbeit(was mir gerade in Info machen) kann ich ja schon.

Hau mich jetzt in die Falle gute Nacht alle mitenand