Un poco de punta sobre el uso de la COM con servicios de Windows.

Hoy he intentado acceder a un documento XML de un servicio de Windows. Prototipo Cuando mis clases utilizando una aplicación de Windows Forms todo funcionó bien, pero cuando he utilizado las mismas clases en un servicio de Windows seguí recibiendo el error "CoInitialize no ha sido llamado".

CoInitialize debe ser llamado por cada hilo cuando se utiliza cualquier tipo de objeto COM. Las capturas es que la clase TService que viene con Delphi crea su propio hilo de apoyo a fin de ejecutar el OnExecute evento. Una vez que sepas esto, es bastante simple para rectificar su código

procedimiento TMyService.ServiceExecute (Sender: TService);

empezar

CoInitialize (cero);

Intentar

/ / Su código aquí

finalmente

CoUninitialize;

final;

final;

Average rating: