У меня есть простой класс автоматизации, подобный этому:
type
TTest_COM = class(TAutoObject, ITest_COM)
private
Variable: TClass;
protected
procedure Test(parameters...); safecall;
public
procedure Initialize; override;
destructor Destroy; override;
end;
implementation
destructor TTest_COM.Destroy;
begin
Variable.Free;
inherited;
end;
procedure TTest_COM.Initialize;
begin
inherited;
Variable := TClass.Create;
end;
procedure TTest_COM.Test(parameters...); safecall;
begin
// this method makes use of "Variable"
end;
Может ли кто-нибудь объяснить мне жизненный цикл такого com-объекта, который действует как получатель msmq?
Проблема в том, чтоПроцедура: Тест иногда действует на невыделенной «Переменной».Когда я удаляю строку: Variable.Free;Это работает отлично, несмотря на то, что использование памяти для dllhost.exe растет.
Почему такие вещи случаются?
РЕДАКТИРОВАТЬ:
Потому что я не могуответь на мой вопрос.Я делаю это здесь.
Проблема решена.
Класс выделяет глобальную переменную.Я не заметил этого.
Это была проблема, что другая переменная была перезаписана.
Спасибо за вашу помощь!