Programmabläufe in einer Klasse auslagern.
-
Hallo,
ich habe ein Programm geschrieben, dass als Dienst läuft.
Wenn ich alles ohne Klassen schreibe funktioniert es auch wunderbar.
Wenn ich es allerdings in eine Klasse schreibe, bekomme ich folgende Fehlermeldung vom Compiler:57 ...\StdService\include\cservice.cpp argument of type `void (cService::)(DWORD)' does not match `void (*)(DWORD)'
serviceStatusHandle = RegisterServiceCtrlHandler(serviceName, ServiceControlHandler);Wie kann ich das umgehen? Hat da wer n tip?
-
Deine Funktion ist wahrscheinlich eine Methode deiner Klasse. Eine Klassen-Methode kann aber nur aufgerufen werden, wenn man den this-Zeiger und die Definition der Klasse kennt, die aufgerufene Funktion kennt aber keins von beidem. Deshalb kann sie nix mit deiner Methode anfangen

Also musst du die Methode als static deklarieren, dann erscheint sie wie eine "normale" Funktion. Du kannst dann aber nicht mehr auf die Member-Vars zugreifen, außer die implementierst die Klasse z.B. als Singleton.