2011-11-16 34 views
6

Tôi đã viết dịch vụ windows ở D7. Nó hoạt động hoàn hảo ok cho đến ngày hôm nay khi nó không muốn được khởi chạy.Mô-đun lỗi 0x0eedfade kernelbase.dll trong dịch vụ windows d7

Trong Event Log tôi nhận được lỗi:

Faulting tên ứng dụng: XServ12.exe, phiên bản: 0.0.0.0, thời gian tem: 0x2a425e19 Faulting tên module: KERNELBASE.dll, phiên bản: 6.1.7600.16385, thời gian tem: 0x4a5bdbdf đang ngoại lệ: 0x0eedfade lỗi offset: 0x0000b727 Faulting quá trình id: 0xbb4 ứng dụng Faulting thời gian bắt đầu: 0x01cca43b2aee203a

tôi đọc ở đâu đó rằng nó có thể là vấn đề với các phần khởi tạo của các đơn vị. Vâng, tôi đã loại bỏ hầu như tất cả các đơn vị hình thành dự án và để lại với: Sysutils, CLasses, Dialogs. Khi đơn vị Dialogs.pas tồn tại tôi vẫn có lỗi khi tôi xóa nó, chương trình sẽ thành công để bắt đầu kết thúc phần dpr dự án.

Hơn nữa, ngay cả khi tôi có tất cả 3 đơn vị này và chỉ chạy exe theo cách thủ công, nó sẽ khởi chạy hoàn toàn ok. Chỉ xảy ra lỗi khi tôi cố gắng chạy dịch vụ từ Dịch vụ hệ thống ...

Nếu tôi khởi động lại máy tính, mọi thứ đều ổn. ...

Bất kỳ ý tưởng nào?

+3

Bạn cần phải giữ một dấu vết ngăn xếp để tìm ra những gì đang thực hiện cuộc gọi này. Sử dụng trình gỡ rối hoặc madExcept. –

Trả lời

8

0x0eedfade có thể là unhandled Delphi exception được truyền bên ngoài quy trình Delphi. Nếu vấn đề chỉ tồn tại khi liên kết trong đơn vị Dialogs có thể là khởi tạo, hoặc khởi tạo của bất kỳ đơn vị nào nó phụ thuộc vào, làm tăng một ngoại lệ không được xử lý và thoát ra khỏi quá trình Delphi của bạn.

Điều này có thể liên quan đến việc dịch vụ chạy trong phiên bị cô lập (như được mô tả trong this document) và không có quyền truy cập vào hệ thống con giao diện người dùng Windows (trạm, máy tính để bàn, cửa sổ) nữa. Nói cách khác, hãy quên interactive services.

+0

Và để làm rõ thêm điểm, hãy quên đơn vị 'Dialogs' vì nó không thể sử dụng được - các dịch vụ tương tác đã trở thành không thể. –

Các vấn đề liên quan