Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > VВ Script VS CoInitialize & CoUnitialize


Автор: Nuzur 25.7.2006, 16:46

Суть вопроса:
1. Мы делаем запуск СОМ объктов на VВ Script они остаються в трее и долгое время  smile  ми считали что все нормально, до тех по( ВО! Момент истины!) пока не создали свой планировщик. Который(Он то милый) и делал 
Код

CoInitialize
создание объкта
работа с ним
CoUnitialize


И о чудо! Мы увидели что он "ушел" из трея(я про объкт).

Теперь меня грызут сомненья а не сделали ли мы чего не так то? Я в смысле того, что я(святая наивность) думал что объкт ограничен зоной своей видимости и следовательно после завершения скрипка которым он был рожден он должен был уйти в мир вечной охоты.
Вечный вопрос - кто прав? Кто виноват? Когда это все закончиться? И куда это все послать?

Всегда ваш, ваш софорумчанин.
"Отвечайте нам а то, если вы не отзоветесь мы напишем в спортлото" 

Автор: Mayk 25.7.2006, 18:33
Так, VB обсуждается вроде здесь


 

Автор: mihanik 26.7.2006, 07:16
М-да...
Загадка природы... 

Это вам не шахматы, - тут думать надо... smile
 

Автор: Naghual 26.7.2006, 09:18
Обратимся к первоисточнику и посмотрим в чем загвоздка.
1. Не пропадает значек из трея, хотя модуль из памяти выгружен.
2. Не пропадает значек из трея и модуль не выгружен из памяти.
3. Не пропадает значек из трея так как модуль подвис.
4. Другое: _________________________________________

Делайте свой выбор
 

Автор: Nuzur 26.7.2006, 15:10
Naghual, 2 но суть тут в том, что я почитал скрипты то, и понял почему:

Код

Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("D:\Project\Processor\Processor.exe")

WScript.Sleep 1000

Set objProcessor = CreateObject("DSP.Processor")
objProcessor.Process("2")



И теперь, насколько я понимаю Иго надо насильно выгружать? 

Автор: Akina 26.7.2006, 17:39
Цитата(Nuzur @  26.7.2006,  16:10 Найти цитируемый пост)
И теперь, насколько я понимаю Иго надо насильно выгружать? 

Если это просто объект - он будет разрушен при завершении программы... но я бы не стал ожидать подобного от СОМ-сервера... так что вызови явно Close (Quit, etc. - зависит от конктерного объекта). 

Автор: Naghual 26.7.2006, 18:10
Таки да. Необходимо уничтожить эксемпляр объекта "DSP.Processor" и/или обнулить переменную objProcessor.
 

Автор: Nuzur 31.7.2006, 09:36
Naghual,   ак оманду для сего можете подсказать? Или просто Release нужно вызвать?  

Автор: Nuzur 3.8.2006, 15:59
Поднимаю, в первый и последний smile

Автор: mihanik 3.8.2006, 16:06
А объект "убивать" вот так не получится?

Код

Set objProcessor = Nothing


Или я опять что-то не так понял?

Автор: Nuzur 8.8.2006, 11:18
mihanik, незнаю, просто в С++ это делается по-другому... вот я у вас и спрашиваю.
Вам ведь должно быть виднее smile Basic это ж ваш конек smile

Автор: mihanik 8.8.2006, 12:04
Ну...
Я тебе показал, как делаю я. smile 
Попробуй.
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)