Hallo - schon wieder!
Diesmal geht es um Signalhandler. Ich möchte, dass mein Server, wenn er mit CTRL+C beendet wird, noch einiges wieder freigibt.
Dazu hab ich in die Klasse Starter, die den Server an sich startet (ach nee…), eine signalhandler-Funktion eingefügt und in Starter::run die signal. Sieht dann so aus:
STARTER.CPP
#include
#include
void Starter::stop(int sig)
{
cerr
Leider erhalte ich dabei immer die Compiler-Meldung (VC++ 6):
error C2664: 'signal' : Konvertierung des Parameters 2 von 'void (int)' in 'void (\_\_cdecl \*)(int)' nicht moeglich
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein
Keine Ahnung, was der mit \_\_cdecl\* meint... auch die entsprechende MSDN-Seite hilft nicht weiter.
Interessanterweise funktioniert es sofort, wenn ich die Funktion Stop global mache! (also einfach "Starter::" weglasse).
Aber dann hab ich leider keine Referenzen mehr auf die Klassenobjekte, die ich freigeben will... :/
Kann mir da jemand helfen?
kvida