Class_Terminate()

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Class_Terminate()

Сообщение Vovik » 24.01.2004 (Сб) 16:14

Почему при компиляции ActiveX DLL процедуры Class_Terminate() в кл.модулях перестают выполняться? :cry:
Как это можно исправить? :roll:
Заранее благодарен!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.01.2004 (Вс) 7:59

Это значит, что перекрёстные сслыки не позволяют объектам уничтожиться. Есть такое, что один объект содержит указатель на другой, а тот - на первый? Такие связи нужно разрывать вручную, заведя friend sub, который будет заниматься нафингованием указателей, и явно его вызывая.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 25.01.2004 (Вс) 12:16

Я немножко не понял, что ты хочешь сказать? :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.01.2004 (Пн) 10:00

Ну так это...
Читай, что есть COM вообще и COM Reference Count в частности, как он считает указатели, когда уничтожает объекты и почему :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 13.02.2004 (Пт) 22:44

Ничерта не выходит.... :cry: Не хочет при компиляции её выполнять... В ВБ - только терминэйт работает, а инициализе - ноль вообще! :( А мне очень нужно их врубить, иначе память захламляется... :(

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 15.02.2004 (Вс) 20:28

ну так тогда правильно юзай объекты - если уж Terminate не выполняется, то реализуй в классе метод Dispose и вызывай его самостоятельно. В методе dispose и реализуй освобождение ресурсов.
Изображение

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 15.02.2004 (Вс) 23:19

sanches писал(а):ну так тогда правильно юзай объекты - если уж Terminate не выполняется, то реализуй в классе метод Dispose и вызывай его самостоятельно. В методе dispose и реализуй освобождение ресурсов.

Хотелось бы создать более автоматическую длл... :( Но если эти процедуры сделаны, они должны ваполняться...Вопрос: в чем их проблема, что им мешает? :cry:

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 16.02.2004 (Пн) 8:11

Не знаю, что у тебя за проблемы, но я проверил - у меня все работает. И _Initalize и _Terminate. А ты по-лучше проверь, все ли ссылки освобождены.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList  
cron