Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Чёртов Service   Найти похожие ветки 

 
Vladimyr ©   (2005-03-11 11:28) [0]

Доброе время суток всем, кто сумел написать сервис на KOL :)
У меня возникла следующая проблема: до момента показа формы всё работает нормально, а в момент закрытия оной вылезает ошибка обращения к памяти по адресу "00000000".

Код примерно такой:

1. в файле "Testserv_1.inc":

if Start then exit;

2. в файле "TestServ.dpr":

function Start: boolean; stdcall;
begin

  ServTable[0].lpServiceName := SERVICE_NAME;
  ServTable[0].lpServiceProc := @ServiceProc;
  ServTable[1].lpServiceName := nil;
  ServTable[1].lpServiceProc := nil;
  result := StartServiceCtrlDispatcher (ServTable[0]);
  if not result and (GetLastError = ERROR_FAILED_SERVICE_CONTROLLER_CONNECT) then
    MsgOK ("Usual start...");
end;


(то есть проверяем, как стартовали - как сервис или как приложение, и во втором случае запускаем апплет обычным порядком -  тут всё OK, апплет стартует и нормально завершается)

procedure ServiceProc(argc: DWORD; var argv: array of PChar) stdcall;
begin

  ...
  NewForm1 (Form1, pointer (Applet));
  run (Applet);

end;


...а вот тут ошибка - апплет стартует нормально, а в момент завершения обращается к несуществующей памяти...

Сердцем чую, что какая-нибудь ерунда...  :-)


 
Vladimyr ©   (2005-03-11 12:22) [1]

Ещё одно странное наблюдение:
если в процедуре "ServiceProc" добавить после "run (Applet);" команду "MsgOK ("The end");" или "sleep (100);", то апплет завершается без ошибки!

Вот это уж совсем непонятно...  ==(
(хотя вроде бы решает проблему)


 
Vladimyr ©   (2005-03-11 12:38) [2]

Вроде бы нашёл причину: статус сервиса в процедуре ServiceCtrlHandler у меня обновлялся с интервалом 100 мс...

Сам спросил, сам и ответил... <;*}



Страницы: 1 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
14-1129290221
boriskb
2005-10-14 15:43
2005.11.06
Фантастика ли это?


3-1127894734
axx
2005-09-28 12:05
2005.11.06
FireBird SQL синтаксис


2-1129360751
Артём
2005-10-15 11:19
2005.11.06
Форматоирование строк в ListBox


14-1129612855
Ega23
2005-10-18 09:20
2005.11.06
Interpolitex-2005 Кто пойдёт?


14-1129564817
syte_ser78
2005-10-17 20:00
2005.11.06
Delphi 5