Com und Windows-Dienste


Ein kleiner Tipp zur Verwendung von COM mit Windows Services.

Heute habe ich versucht, den Zugriff auf ein XML-Dokument von einem Windows-Dienst. Wenn ich einen Prototyp meiner Klassen mithilfe einer Windows Forms-Anwendung alles funktionierte fein, sondern wenn ich die gleichen Klassen verwendet, in einer Windows service ich hielt, den Fehler 'CoInitialize wurde nicht aufgerufen'.

CoInitialize muss für jeden Thread aufgerufen werden, wenn Sie jede Art von COM-Objekt zu verwenden. Der Haken ist, dass die TService-Klasse, die mit Delphi kommt einen eigenen Thread Unterstützung erstellt, um das OnExecute-Ereignis ausgeführt. Sobald Sie wissen, ist es ganz einfach, Ihren Code zu korrigieren

Prozedur TMyService.ServiceExecute(Sender: TService);

beginnen

CoInitialize(nil);

versuchen Sie

Ihren Code hier ein

Schließlich

CoUnInitialize;

Ende;

Ende;









Com und Windows-Dienste


Com und Windows-Dienste : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Ein kleiner Tipp zur Verwendung von COM mit Windows Services.

Heute habe ich versucht, den Zugriff auf ein XML-Dokument von einem Windows-Dienst. Wenn ich einen Prototyp meiner Klassen mithilfe einer Windows Forms-Anwendung alles funktionierte fein, sondern wenn ich die gleichen Klassen verwendet, in einer Windows service ich hielt, den Fehler 'CoInitialize wurde nicht aufgerufen'.

CoInitialize muss für jeden Thread aufgerufen werden, wenn Sie jede Art von COM-Objekt zu verwenden. Der Haken ist, dass die TService-Klasse, die mit Delphi kommt einen eigenen Thread Unterstützung erstellt, um das OnExecute-Ereignis ausgeführt. Sobald Sie wissen, ist es ganz einfach, Ihren Code zu korrigieren

Prozedur TMyService.ServiceExecute(Sender: TService);

beginnen

CoInitialize(nil);

versuchen Sie

Ihren Code hier ein

Schließlich

CoUnInitialize;

Ende;

Ende;


Com und Windows-Dienste

Com und Windows-Dienste : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Com und Windows-Dienste
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung