problem mit statischern Funktionen

gamerfunkie

Erfahrenes Mitglied
hallo,
ich habe eine klasse.
in dieser ist eine Callback-Funktion für Mausbewegungen. Diese muss als statisch deklariert sein.
Mein problem ist, das ich jetzt Member-Variablen der Klasse innerhalb der Callbackfunktion ändern will, diese sind nicht statisch, da wenn ich sie statisch deklariere, folgende Linker-fehlermeldung kommt:
Code:
1>tracking1Doc.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static int Ctracking1Doc::add_remove_pt" (?add_remove_pt@Ctracking1Doc@@2HA)".

Gibt es da eine Möglichkeit auf meine Variablen zuzugreifen?
Kann man vielleicht die instanz der Klasse übergeben?
Zur info: ich kann einen void* Pointer mitgeben, aber über den bekomm ich leider nichts gebacken.
Mfg gamerfunkie
 
okay, mir ist gerade aufgefallen, das wenn ich die variablen statisch mache, sie auch initialisiert werden müssen.
das habe ich jetzt gemacht, doch jetzt kommt folgender linkerfehler:
Code:
1>tracking1View.obj : error LNK2005: "public: static struct _IplImage * Ctracking1Doc::image" (?image@Ctracking1Doc@@2PAU_IplImage@@A) ist bereits in CntrItem.obj definiert.
 
Hi.

Ja, du müßtest eine Instanz an die statische Methode übergeben. Das kannst du eigentlich über den void-Pointer machen und dann mit einem reinterpret_cast wieder die eigentliche Klasse erhalten.

Aber zeig mal etwas Code, das ist ja doch etwas spärlich.

Gruß
 
Hallo,
ja zugegeben ist das wirklich wenig Code :D
ich habe das jetzt so gelöst:
statische callback Funktion, sowie alle von dieser Funktion benötiogten Funktion statisch. Der erste Linkerfehler trat auf, da ich die statischen variablen nicht ausserhalb der Klasse initialisiert hatte, danach bekam ich noch ein Linkerfehler("schon vorhanden in bla.obj").
Dieser konnte behoben werden indem ich einfach die Initalisierung mit #ifndef, etc ... nur einmal durchführen liess.
Aber nooh eine Frage jetzt; Was ist ein reinterprete_cast operator?
Mfg gamerfunkie
 
Zurück