Не освобождаются OLE-объекты

alexgoldalexgold Москва
отредактировано 16:28 Раздел: FastScript
FastScript 1.8, Delphi 6.

Используется ActiveX библиотека, в которой есть объект. Для контроля
освобождения в деструкторе объекта выдается сообщение.

Запускаем процедуру в скрипте:
procedure TestOle(Sender: TButton);
var x: Variant;
begin
    x := CreateOleObject('TestLib.TestObject');
    x := 0;
end;
При выполнении процедуры объект освобождается нормально. Теперь добавим
обращение к любому методу:
procedure TestOle(Sender: TButton);
var x: Variant;
    s: string;
begin
    x := CreateOleObject('TestLib.TestObject');
    s := x.TestMethod('test');
    x := 0;
end;
При вызове этой процедуры объект не освобождается! Но при повторном
вызове идет освобождение объекта, созданного в предыдущем вызове.

Это нормально?

Комментарии

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.