Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Вт 21 Янв 2014 14:47 Заголовок сообщения: Очередной вопрос о самописных модулях |
|
|
Здравствуйте!
Суть моего вопроса в следующем.
Я пишу модуль на C# в Visual Studio. В момент создания в vbs-коде модуля ИнГео объекта ранее зарегистрированного типа DLL этого типа становится занятой самой геоинформационной системой. И, например, если при этом в Visual Studio я внесу какое-либо изменение в c#-коде и попытаюсь собрать проект, студия собрать его не сможет, так как не сможет получить доступ к уже занятой ИнГео DLL.
Скажите, как мне освободить DLL после остановки модуля в ИнГео?
В метод Done пытался воткнуть Marshal.FinalReleaseComObject(application);
Не помогает.
Помогает только завершение работы самой ИнГео. |
|
Вернуться к началу |
|
|
APopov
Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
|
|
Вернуться к началу |
|
|
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Ср 22 Янв 2014 12:27 Заголовок сообщения: |
|
|
Спасибо! А в курсе ли кто-нибудь, можно ли отменить выключение модуля? Я говорю про обработчик Module_WillStop().
Подобно способу с "e.Cancel=true" в WinForms. |
|
Вернуться к началу |
|
|
APopov
Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
|
Добавлено: Ср 22 Янв 2014 12:53 Заголовок сообщения: |
|
|
На вскидку - нет. Думаю, даже если вы в обработчике поднимите исключение, Ингео его "проглотит" и всё равно прибьёт модуль и удалис свои ссылки на него.
Лучше, конечно, на этот вопрос ответят разработчики и, наверное, в отдельном топике, если такой будет создан _________________ ОАО "Самара-Информспутник",
инженер-программист Попов Артем |
|
Вернуться к началу |
|
|
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Ср 22 Янв 2014 12:56 Заголовок сообщения: |
|
|
Последую Вашему совету |
|
Вернуться к началу |
|
|
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Ср 22 Янв 2014 15:00 Заголовок сообщения: |
|
|
И снова вопрос. В ИнГео 4.4 в окне редактора модуля есть две панели инструментов. В самой верхней располагаются характерные кнопки старта и остановки модуля. В панели немного ниже есть похожие кнопки "Запустить выполнение программы" и "Остановить выполнение программы".
Я думал, что они делают одно и то же. Оказалось, нет. Поэтому хочу узнать, в чем различие.
Например, при нажатии старта из верхней панели происходит автоматическое нажатие кнопки старта в нижней панели (это видно по визуальному эффекту. В меню появляется пункт моего модуля, поскольку в обработчике старта я это прописал). При нажатии сначала старта из нижней панели тоже автоматически нажимается кнопка старта в верхней панели. То есть в обоих случаях выполняется обработчик события Module_StartComplete().
При нажатии кнопки стоп в верхней панели в нижней аналогичная кнопка тоже нажимается, из меню пропадает мой пункт. Обработчик Module_WillStop() выполняется. А вот при нажатии сначала кнопки стоп в нижней панели верхняя кнопка стоп не становится автоматически нажатой. Однако мой пункт меню исчезает. При этом Module_WillStop() не выполняется. И в этом случае даже после нажатия верхней кнопки остановки этот обработчик не выполняется. А в указанном обработчике находится код, который необходимо выполнить для нормальной работы по моей задумке.
То есть получается, что выполнение этого обработчика пользователь сможет обойти (при том, что по исчезновению пункта меню он будет считать, что модуль выключен), что неприемлемо. Скажите, как можно это исправить?
Надеюсь, получилось не очень запутанно |
|
Вернуться к началу |
|
|
APopov
Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
|
Добавлено: Ср 22 Янв 2014 18:19 Заголовок сообщения: |
|
|
Пользователь не должен запускать модуль из редактора модулей
Он запускает/останавливает модуль ставя галочку в списке модулей (вызываемого по Ctrl+F7) , и это будет аналогично действиям кнопок из "верхней" панели.
А "нижняя" панель в редакторе она для разработчика. _________________ ОАО "Самара-Информспутник",
инженер-программист Попов Артем |
|
Вернуться к началу |
|
|
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Чт 23 Янв 2014 09:07 Заголовок сообщения: |
|
|
Спасибо! Что-то я притормозил |
|
Вернуться к началу |
|
|
|