정상적인 응용 프로그램에서 제대로 작동하는 플러그인 세트를 작성했습니다. 하지만 서비스 응용 프로그램에서 사용하려고하면 서비스가 CreateComObject
기능에 도달하면 서비스가 중지됩니다. 서비스 응용 프로그램에서 COM 플러그인을 사용할 수 있습니까?서비스 응용 프로그램 및 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;
코드를 올바르게 포맷하십시오. 붙여 넣기를 선택하고 {} 버튼을 클릭하십시오. –