![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TComObject [D5, Win2k]
---- © (2002-11-19 14:43:00)Сделал СОМ-обьект...унаследовал его от интерфейса 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 16:21:00) [1]I:=nil;I1:=nil;{Release}- делаешь?
---- (2002-11-19 16:20:00) [2]ВСЕ!! ВОПРОС СНЯТ!! Это был мой глюк в написании СОМ-обьекта. Я обращался к глобальной переменной. И когда первый экземпляр уничтожался, то он убивал эту переменную. А второй при уничтожении ссылался на нее - вот и ошибка...
---- (2002-11-19 15:54:00) [3]Хелп я и сам читал......
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...?
han_malign (2002-11-19 14:57:00) [4]CreateComObject is called onceto create each new singleinstance of a class. To create multipleinstance of the same class it is recommended to use a class factory.