Timer in mehreren dateien
-
Hallo zusammen!
Ich habe versucht, einen Timer in mein Win32-Programm einzubauen und habe nun drei Dateien:
main.cpp
Class class1;
SetTimer(NULL, 0, 1000,(TIMERPROC) &Class::myTimer);
header.hpp
void CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime);
functions.cpp
void CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime) { //auszuführender Code }
Nun erhalte ich jedoch folgende Fehlermeldung beim kompilieren:
undefined reference to `Class::myTimer(HWND__*, unsigned int, unsigned int, unsigned long)
Wenn ich alles in einer Datei habe, funktioniert das einwandfrei, so jedoch nicht.
Wie kann ich die Referenz am Schluss der 'SetTimer'-Funktion nun an den Timer übergeben?
-
Der SetTimer-Aufruf ist falsch. Du kannst keine Member Funktionen übergeben, das funktioniert nur mit freien Funktionen oder statischen Member Funktionen.
-
Unabhängig davon, ob der Code falsch oder richtig ist: Die Funktion
myTimer
ist nicht Teil der KlasseClass
. Das ist auch, was die Fehlermeldung besagt. Das darf aber auch nicht funktionieren, wenn du den Code in nur einer Datei hast.Da das Beispiel ziemlich wirr und unvollständig ist (Wo ist diese Klasse
Class
? Was sollclass1
sein?), kann man nur raten, dass du vermutlich beim Verteilen auf mehrere Dateien etwas gekürzt hast, was nicht hätte gekürzt werden dürfen, oder das du etwas hinzu gefügt hast, das nicht hätte hinzu gefügt werden sollen (zum Beispiel dieses geheimnisvolleClass
)
-
Richtig ist also:
SetTimer(NULL, 0, 1000, &myTimer);
-
@MatthewD01gotporn sagte in Timer in mehreren dateien: xnxx
Hallo zusammen!
Ich habe versucht, einen Timer in mein Win32-Programm einzubauen und habe nun drei Dateien:
main.cpp
Class class1;
SetTimer(NULL, 0, 1000,(TIMERPROC) &Class::myTimer);
header.hppvoid CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime);
functions.cppvoid CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime)
{
//auszuführender Code
}
Nun erhalte ich jedoch folgende Fehle rmeldung beim kompilieren:undefined reference to `Class::myTimer(HWND__*, unsigned int, unsigned int, unsigned long)
Wenn ich alles in einer Datei habe, funktioniert das einwandfrei, so jedoch nicht.
Wie kann ich die Referenz am Schluss der 'SetTimer'-Funktion nun an den Timer übergeben?SetTimer(NULL, 0, 1000, &myTimer);