Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.28;
Скачать: CL | DM;

Вниз

TComObject   Найти похожие ветки 

 
----   (2002-11-19 14:43) [0]

Сделал СОМ-обьект...унаследовал его от интерфейса IMy(созданного мной)...зарегистрировал его (обьект)...Коннекчусь к нему

var
I: IMy;
I1: IMy;

procedure Test;
begin
I :=CreateComObject(Class_IMy_) as IMy;
I.Smth;
I1:=CreateComObject(Class_IMy_) as IMy;
I1.Smth;
end;

Мне нужно, чтобы создалось 2 экземпляра IMy...но создается только один....а когда закрываю прогу, то выдается куча всяких ошибок...Притом, когда не использую I1 (в процедуре Test комментирую последние 2 строки), то все нормально. Почему?


 
han_malign ©   (2002-11-19 14:57) [1]

CreateComObject is called once to create each new single instance of a class. To create multiple instance of the same class it is recommended to use a class factory.



 
----   (2002-11-19 15:54) [2]

Хелп я и сам читал......

1. Проблем нет
procedure Test;
begin
I :=CreateComObject(Class_IMy_) as IMy;
I.DoSmth;
end;

2. Проблемы есть
procedure Test;
begin
I :=CreateComObject(Class_IMy_) as IMy;
I.DoSmth;
I1 :=CreateComObject(Class_IMy_) as IMy;
I1.DoSmth;
end;

Почему когда я "create new single instance of a class" во второй раз, при закрытии приложения вылетает ошибка Access violation...?


 
----   (2002-11-19 16:20) [3]

ВСЕ!! ВОПРОС СНЯТ!! Это был мой глюк в написании СОМ-обьекта. Я обращался к глобальной переменной. И когда первый экземпляр уничтожался, то он убивал эту переменную. А второй при уничтожении ссылался на нее - вот и ошибка...


 
han_malign ©   (2002-11-19 16:21) [4]

I:=nil;I1:=nil;{Release}- делаешь?



Страницы: 1 вся ветка

Текущий архив: 2002.11.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
14-93256
Snake2000
2002-11-07 12:32
2002.11.28
---|Ветка была без названия|---


14-93216
Neox
2002-11-07 16:01
2002.11.28
PopUp (Hint)


1-93119
Tano
2002-11-16 12:26
2002.11.28
Физическое расположение STRING в памяти


14-93202
Куртка
2002-11-10 00:07
2002.11.28
Юрию Федорову


1-92972
[BAD]Angel
2002-11-18 13:42
2002.11.28
Как сделать?