Я написал набор плагинов, которые нормально работают в обычном приложении.Но когда я пытаюсь использовать их в приложении службы, моя служба останавливается, когда она достигает функции CreateComObject
.Могу ли я использовать COM плагины в сервисном приложении?Это код:
procedure TWCMService.CreateControllerList;
var
List: TAutoFreeList<TController>>;
i: integer;
Plugin: IPluginInterfaces;
begin
try
List := TAutoFreeList<TController>.Create;
DatabaseModule.IBDatabase1.Connected := true;
DatabaseModule.SelectControllers(List);
DatabaseModule.IBDatabase1.Connected := false;
Plugin := CreateComObject(StringToGuid('{F2959AEC-644F-49E4-9012-B9B3BF34B43F}')) as IPluginInterfaces;
for i := 0 to List.Count - 1 do
begin
Plugin.Init(StringToGuid(List[i].PluginId));
FAvailControllers.Add(CreateComObject(Plugin.GetCommunicationPluginGuid) as ICommunicationPlugin);
FAvailControllers[i].Init(Self as IServiceApplication);
FAvailControllers[i].SetMAC(List[i].ControllerMAC);
MessageBox(0, 'Dodany', 'Uwaga', MB_OK);
end;
List.Free;
FAvailControllersCurrentIndex := 0;
Timer1.Enabled := true;
except
raise Exception.Create('WCM Serwis: Error Message');
end;
end;