参考:Simple Windows Service in C++
代码
#include <stdlib.h>
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
SERVICE_STATUS g_ServiceStatus = {
0};
SERVICE_STATUS_HANDLE g_StatusHandle = NULL;
HANDLE g_ServiceStopEvent = INVALID_HANDLE_VALUE;
VOID WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
VOID WINAPI ServiceCtrlHandler(DWORD);
DWORD WINAPI ServiceWorkerThread(LPVOID lpParam);
#undef _T
#define _T (LPCSTR)
#define SERVICE_NAME _T("My Sample Service")
int _tmain(int argc, TCHAR *argv[])
{
SERVICE_TABLE_ENTRY ServiceTable[] =
{
{
(LPSTR) "My Sample Service", (LPSERVICE_MAIN_FUNCTION)ServiceMain},
{
NULL, NULL}};
if (StartServiceCtrlDispatcher(ServiceTable) == FALSE)
{
return GetLastError();
}
return 0;
}
VOID WINAPI ServiceMain(DWORD argc, LPTSTR *argv)<