Dienste



  • Hallo an Alle!
    Ich hab eine Programm geschrieben, dass ich gern als Windows 2000 Dienst ablaufen lassen möchte.
    Hab die ganze MSDN durchgewühlt! Versteh jetzt zwar die Dienste (Kommunikation zum SC - Manager); nur die Beispiele aus der MSDN funktionieren bei mir nicht wirklich!
    Kann mir vielleicht jemand weiter helfen, wie ich mein kleines Prog. so umschreib, dass meine exe-Datei als Dienst startet?!
    Wär suppi, wenn mir da jemand Anhaltspunkte geben könnte.
    Programmiere unter Windows 2000 bzw. XP unter VC 6.0!



  • nur die Beispiele aus der MSDN funktionieren bei mir nicht wirklich!

    Compilerfehler? Linkerfehler? Absturz? Oder wie oder was?
    Die Problembeschreibung ist etwas dünn, meinst Du nicht auch?



  • Hab deswegen nicht mehr beschrieben, weil ich dachte, dass es irgendwie einfacher geht, einen Dienst zu starten.
    Hab nur mal aus der MSDN kopiert:

    VOID MyServiceStart (DWORD argc, LPTSTR *argv);
    VOID MyServiceCtrlHandler (DWORD opcode);
    DWORD MyServiceInitialization (DWORD argc, LPTSTR *argv, DWORD specificError);
    VOID SvcDebugOut(LPSTR String, DWORD Status)

    void main( )

    Anfangen tut der Compiler, dass in Main, der Dispatch Table nicht nicht mit dem Zieltyp übereinstimmt:
    error C2440: 'initializing' : '' kann nicht in 'void (__stdcall *)(unsigned long,char ** )' konvertiert werden
    Desweiteren hab ich noch 25 Fehler ....
    Will ja eigentlich nur, dass mein Programm, bei Windows Start bootet.
    Mehr soll dieser Dienst gar nicht können; keine Abhängigkeiten und nix ...

    bitte bitte helft mir, dass ich das ganz einfach hinkrieg!



  • VOID MyServiceStart (DWORD argc, LPTSTR *argv);
    VOID MyServiceCtrlHandler (DWORD opcode);
    DWORD MyServiceInitialization (DWORD argc, LPTSTR *argv, DWORD specificError);
    VOID SvcDebugOut(LPSTR String, DWORD Status)

    void main( )

    Also der Fehlermeldung nach musst Du die Prototypen ändern:
    VOID __stdcall MyServiceStart (DWORD argc, LPTSTR *argv);
    VOID __stdcallMyServiceCtrlHandler (DWORD opcode);

    int main( )

    Was die Funktionen MyServiceInitialization und SvcDebugOut kann nur ahnen; da sie aber vermutlich nicht direkt mit Services in Verbindung stehen, kannst Du das wohl so stehen lassen.



  • Hast Du auch alle für Services benötigten Headerdateien inkludiert bzw. alle benötigten LIB's gelinkt?


Anmelden zum Antworten