Форум программистов, компьютерный форум CyberForum.ru

Код службы, которая издает звуковой сигнал в начале каждого часа. Исправить ошибки при компиляции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы и графика в с++ http://www.cyberforum.ru/cpp-beginners/thread573286.html
Надо написать программу, но я не понимаю, как, так как препод по программированию нам ничего не объясняет! Помогите написать! Пожалуйста! В задании необходимо реализовать Windows интерфейс, позволяющий добавлять новые объекты, удалять все объекты, выполнять включенные в объект операции. Хранить объекты в виде глобального массива указателей фиксированной длины, например 20. Текущее количество...
C++ Расчет арифметического выражения через бинарное дерево! Здравствуйте!Помогите пожалуйста с написанием программы! "Написать программу, размещающую запись арифметического выражения в двоичном дереве. Арифметическое выражение может содержать в себе переменные, знаки математических операций, круглые скобки. Результатом программы должно быть вычисленное значение произвольно заданного арифметического выражения." Я кое что нашла в интернете, но я не могу... http://www.cyberforum.ru/cpp-beginners/thread573280.html
Консоль. Неправильный вывод C++
Вот эскиз кода: #include <iostream> #include <cstdlib> #include <windows.h> #include <boost/thread.hpp> int c = 0; void some() { while(true) c++;
C++ лабиринт
Написать программу, моделирующую лабиринт. В качестве символа стен выберите символ «#». В лабиринте должно быть не более N входов и выходов. Попробуйте составить рекурсивную функцию, которая будет искать выход из лабиринта, начиная с некоторой начальной позиции.
C++ Три массива в один http://www.cyberforum.ru/cpp-beginners/thread573272.html
#include <iostream> #include <time.h> using namespace std; void main () { setlocale (LC_ALL, "rus"); int massiv; srand(time(0)); cout<<"Начальные три массива:\n"; for (int i = 0; i < 3; i++)
C++ строки Дана строка символов, среди которых одна открывающая и одна закрывающая скобки. Вывести на экран все символы, расположенные внутри этих скобок. буду очень благодарна,заранее спасибо подробнее

Показать сообщение отдельно
kms_box2011
1 / 1 / 0
Регистрация: 07.03.2011
Сообщений: 24
13.05.2012, 18:23     Код службы, которая издает звуковой сигнал в начале каждого часа. Исправить ошибки при компиляции
// serv.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"

Нашел исходник на http://dmtsoft.ru/bn/144/as/oneaticleshablon/, как исправить ошибки:
Ошибка 1 error C2664: atoi: невозможно преобразовать параметр 1 из "LPTSTR" в "const char *"
2 IntelliSense: аргумент типа "LPTSTR" несовместим с параметром типа "const char *"

#include <windows.h>
#include <iostream>
#include <string.h>
#include <time.h>
#include <process.h>

SERVICE_STATUS Service1Status;
SERVICE_STATUS_HANDLE Service1StatusHandle;
using namespace std;

int modtime=3600; // звуковой сигнал каждый час
HANDLE thread;
BOOL manual=FALSE;

void ding(void *)
{
time_t timeval;
while (Service1Status.dwCurrentState!=SERVICE_STOPPED)
{
if (Service1Status.dwCurrentState!=SERVICE_PAUSED)
{
time(&timeval);
if (!(timeval%modtime)|| manual)
PlaySound( L"DING", GetModuleHandle( NULL), SND_RESOURCE|SND_SYNC|SND_NOSTOP);
manual=FALSE;
}
Sleep(500);
}
}

VOID __stdcall CtrlHandler (DWORD Opcode)
{
DWORD status;
switch(Opcode)
{
case SERVICE_CONTROL_PAUSE:
// если пауза
Service1Status.dwCurrentState = SERVICE_PAUSED;
break;
case SERVICE_CONTROL_CONTINUE:
// если продолжение работы
Service1Status.dwCurrentState = SERVICE_RUNNING;
// блокировать звуковой сигнал
manual=TRUE;
break;
case SERVICE_CONTROL_STOP:
//остановка службы
Service1Status.dwWin32ExitCode = 0;
Service1Status.dwCurrentState = SERVICE_STOPPED;
Service1Status.dwCheckPoint = 0;
Service1Status.dwWaitHint = 0;
if (!SetServiceStatus (Service1StatusHandle,&Service1Status))
{
status = GetLastError();
}
return;
case SERVICE_CONTROL_INTERROGATE:
//Запрашивает текущее состояние службы
break;
default:
// обработка неизвестного кода
// ничего не делать
;
}
// текущее состояние
if (!SetServiceStatus (Service1StatusHandle, &Service1Status))
{
status = GetLastError();
}
return;
}

void __stdcall Service1Start (DWORD argc, LPTSTR *argv)
{
DWORD status;
DWORD specificError;
if (argc>1) modtime=atoi(argv[1]);
if (!modtime) modtime=1;
Service1Status.dwServiceType = SERVICE_WIN32; // тип службы
Service1Status.dwCurrentState = SERVICE_START_PENDING; // состояние службы
//набор флагов, который показывает, какие команды управления обрабатываются службой
Service1Status.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_PAUSE_CONTINUE;
Service1Status.dwWin32ExitCode = 0;
Service1Status.dwServiceSpecificExitCode = 0;
Service1Status.dwCheckPoint = 0;
Service1Status.dwWaitHint = 0;
Service1StatusHandle = RegisterServiceCtrlHandler(TEXT("Servicel"), CtrlHandler);
//регистрация функции-обработчика команд службы
if (Service1StatusHandle == (SERVICE_STATUS_HANDLE)0)
{
// ошибка!
return;
}
// Код инициализации переходит сюда
status=NO_ERROR;
// Условие ошибочности
if (status != NO_ERROR)
{
Service1Status.dwCurrentState = SERVICE_STOPPED;
Service1Status.dwCheckPoint = 0;
Service1Status.dwWaitHint =0;
Service1Status.dwWin32ExitCode = status;
Service1Status.dwServiceSpecificExitCode = specificError;
SetServiceStatus (Service1StatusHandle, &Service1Status);
return;
} // Инициализация завершена - доложить о готовности.
Service1Status.dwCurrentState = SERVICE_RUNNING;
Service1Status.dwCheckPoint = 0;
Service1Status.dwWaitHint = 0;
if (!SetServiceStatus (Service1StatusHandle, &Service1Status))
{
status = GetLastError();
// ошибка!
}
// Здесь служба выполняет свою работу.
thread=(HANDLE)_beginthread(ding,0,NULL);
return;
}

void main(int argc, char *argv[])
{
SERVICE_TABLE_ENTRY DispatchTable[] =
{
{
TEXT("Servicel"), //текстовый идентификатор службы
Service1Start //точка входа службы
},
{
NULL,NULL
}
};

if (argc>1 && !stricmp(argv[1],"delete"))
{
//соединяемся с менеджером системных служб
SC_HANDLE scm=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE);
if (!scm)
{
cout<<"He могу открыть SCM\n";
exit(1);
}
//получаем хэндл службы
SC_HANDLE svc=OpenService(scm,L"service1",DELETE);
if (!svc)
{
cout<<"He могу открыть службу\n";
exit(2);
}
//удаляем службу
if (!DeleteService(svc))
{
cout<<"He могу удалить службу\n";
exit(3);
}
cout<<"Служба удалена\n";
CloseServiceHandle(svc);
CloseServiceHandle(scm);
exit(0);
}

//регистрация службы
if (argc>1 && !stricmp(argv[1], "setup"))
{
char pname[1024];
pname[0]='\"';
//получаем имя файла, которому принадлежит данный процесс
GetModuleFileName(NULL,(LPWSTR)pname+1,1023);
strcat(pname,"\"");
//соединяемся с менеджером системных служб
//тип доступа: Создание новой системной
//службы с помошью CreateService
SC_HANDLE scm=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE),svc;
if (!scm)
{
cout<<"Can't open SCM\n";
exit(1);
}
//создаем новую службу
if (!(svc=CreateService(scm, //handle SCM
L"Service1", //имя службы
L"Service1", //название службы
SERVICE_ALL_ACCESS, //доступ к объекту службы
SERVICE_WIN32_OWN_PROCESS,
//тип службы - Служба Win32, выполняющаяся в

//отдельном процессе
SERVICE_DEMAND_START,
//способ запуска службы: запускается, при вызове

//функции StartService
SERVICE_ERROR_NORMAL,
//реакция на ошибки при загрузке: Программа загрузки

//заносит запись в системный журнал и загрузка продолжается.

//Кроме того, на экран выводится сообщение, что службу не

//удалось запустить
(LPWSTR)pname, //исполняемый файл
NULL, //группа загрузки
NULL, //тег (NULL для служб Win32)
NULL, //зависимости
NULL,
//учетная запись службы (NULL соответствует учетной записи LocalSystem)
NULL
//пароль учетной записи
)))
{
cout<<"Ошибка регистрации!\n";
exit(2);
}
cout<<"Успешно зарегистрирована служба "<<pname<<"\n";
CloseServiceHandle(svc);
CloseServiceHandle(scm);
exit(0);
}
//цикл приема и обработки команд SCM
if (!StartServiceCtrlDispatcher( DispatchTable))
{
// error
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru