2011-11-16 11 views
6

Napisałem usługę Windows w D7. Działało idealnie, aż do dzisiaj, kiedy to nie chce zostać uruchomione.0x0eedfade kernelbase.dll moduł błędów w usłudze okien d7

W dzienniku zdarzeń pojawia się błąd:

Błąd nazwę aplikacji: XServ12.exe, wersja: 0.0.0.0, datownik: 0x2a425e19 Błąd nazwę modułu: KERNELBASE.dll, wersja: 6.1.7600.16385, czas pieczęć: 0x4a5bdbdf kod wyjątku: 0x0eedfade przesunięcie błąd: błąd 0x0000b727 proces id: 0xbb4 aplikacja błąd czas rozpoczęcia: 0x01cca43b2aee203a

czytałem gdzieś, że to może być problem z sekcjami inicjalizacji urządzeń. Cóż, usunąłem prawie wszystkie jednostki z projektu i zostawiłem je: Sysutils, CLasses, Dialogs. Kiedy istnieje plik Dialogs.pas, nadal mam błąd, gdy go usuwam, program pomyślnie przechodzi do początku sekcji projektu dpr.

Co więcej, nawet jeśli mam wszystkie te 3 jednostki i po prostu ręcznie uruchomić program exe, uruchamia się idealnie w porządku. Wystąpił tylko błąd podczas próby uruchomienia usługi z usług systemowych ...

Po ponownym uruchomieniu komputera wszystko działa poprawnie. ...

Jakieś pomysły?

+3

Musisz zdobyć ślad stosu, aby ustalić, co robi to połączenie. Użyj debuggera lub madExcept. –

Odpowiedz

8

0x0eedfade może być unhandled Delphi exception propagowany poza procesem Delphi. Jeśli problem występuje tylko podczas łączenia w jednostkach Dialogs, możliwe jest, że jego inicjalizacja lub inicjalizacja jakiejkolwiek jednostki, od której zależy, powoduje zgłoszenie wyjątku, który nie jest obsługiwany i nie wydostaje się z procesu Delphi.

Może to być związane z faktem, że usługa działa w odizolowanej sesji (jak opisano w this document) i nie ma już dostępu do podsystemu interfejsu użytkownika systemu Windows (stacja, pulpit, okna). Innymi słowy, zapomnij o interactive services.

+0

A żeby dokładniej wyjaśnić, zapomnij o jednostce 'Dialogs', ponieważ i tak nie można jej użyć - interaktywne usługi stały się niemożliwe. –

Powiązane problemy