JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=cb3106cb3ebc60fddb70a34444662512Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zeiger auf Funktion

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
derUnwissende
Mini JLI'ler



Anmeldedatum: 14.11.2002
Beiträge: 32

Medaillen: Keine

BeitragVerfasst am: 31.10.2003, 20:01    Titel: Zeiger auf Funktion Antworten mit Zitat

Hi,
ich wollte ne Klasse für Buttons schreiben, und da jeder Button ja ne Funktion hat, aber die nich alle gleich sind, dachte ich, dass ich in dieser Klasse nur einen Zeiger auf ne Funktion schreibe.
Nur weis ich nich, ob und wenn wie das überhaupt geht.
Danke schonmal
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 31.10.2003, 20:05    Titel: Antworten mit Zitat

Ich würde eine klasse schreiben die eine funktion hat der du ein typ übergeben musst, und je nach dem typ wird ein button erstellt!
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 31.10.2003, 20:32    Titel: Antworten mit Zitat

Du willst ja hoch hinaus.

Als erstes solltest du den typ und das aussehen deiner Funktionen definieren:

Code:
typedef LPVOID (*myCommand)(LPVOID[]);


Das heist es wird der typ myCommand für eine Funktion definiert. die als Rückgabewert LPVOID hat und als Parameter ein Array von LPVOID.

Kannst es natürlich nach deinen wünschen machen:

Code:
typedef <Rückgabewert> (*<Funktionstypname>)(<Parameter1>,<Parameter2>,<...>);


Dann musst du noch das in deine Klasse eintragen:

Code:
class DeineKlasse
{
...
myCommand command;
...
};

Deine Funktion schreibst du dann so:

Code:
LPVOID TestFunktion(LPVOID argumente[])
{
...
}


Allgemein würde dass dann so aussehen:

Code:
<Rückgabewert> Funktionsname(<Parameter1>,<Parameter2>,<...>)
{
...
}


Nachdem du deine Funktionen so erstellt hast kannst du Sie deiner Klasse irgendwo zuweisen:

Code:
DeineKlasse DeineKlassenVariable;
...
DeineKlassenVariable.command = (myCommand)TestFunktion;

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
derUnwissende
Mini JLI'ler



Anmeldedatum: 14.11.2002
Beiträge: 32

Medaillen: Keine

BeitragVerfasst am: 31.10.2003, 21:40    Titel: Antworten mit Zitat

Dankeschön, werd das gleich mal ausprobieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 31.10.2003, 21:45    Titel: Antworten mit Zitat

Das ganze hab ich hier übrigens auch mal gebraucht das Beispiel dazu ist hier:

www.dragonfx.de/download/scrp.zip

Ein Problem dabei war das ich diese Zeigerfunktionen nicht gleichzeitig in einer Klasse definieren konnte und diese dann zuweisen. Das hab ich gelöst indem ich static verwendet habe.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
me
Junior JLI'ler



Anmeldedatum: 10.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 01.11.2003, 14:43    Titel: Antworten mit Zitat

vielleicht hilft jemanden zu diesem thema ja auch folgende web-seite:

www.function-pointers.org
_________________
If something is stupid and it works, it ain't stupid! Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
me
Junior JLI'ler



Anmeldedatum: 10.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 02.11.2003, 13:09    Titel: Antworten mit Zitat

oops... der link war natuerlich folgender:

www.function-pointer.org

die haben auch noch nette links ^^
_________________
If something is stupid and it works, it ain't stupid! Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum