Имя: Пароль:
1C
1C 7.7
v7: ЗагрузитьВнешнююКомпоненту()
0 kupec
 
18.12.13
11:33
При открытии формы некой обработки подгружается внешняя компонента методом ЗагрузитьВнешнююКомпоненту(), при закрытии формы компонента так и остается загруженной, можно как то при закрытии формы обработки "отвязать" компоненту, как бы ВыгрузитьВнешнююКомпоненту() ???
1 ДенисЧ
 
18.12.13
11:34
ЗавершитьРаботуСистемы() гарантированно выгрузит.
2 Chum
 
18.12.13
11:34
(0) зачем?
3 kupec
 
18.12.13
11:35
(1) оно понятно, а без завершения работы ???
(2) нада
4 ДенисЧ
 
18.12.13
11:36
(3) Можно ещё виндовз перезагрузить...
5 Chum
 
18.12.13
11:38
(3) зачем? Объект создал, убил, а dll тут причем?
6 kupec
 
18.12.13
11:45
ЗагрузитьВнешнююКомпоненту(Путь);
Объект=СоздатьОбъект("ТилиТили");
// бла бла бла
Объект="";
А компонента то так и осталась в памяти....
7 Злопчинский
 
18.12.13
14:26
(6) да, компонента осталась в памяти. На глаза попадаласт другая компонента, которая позволяла выгружать компоненты.
8 an-korot
 
18.12.13
19:30
точно не помню, но
присвоение = неопределено или что-то подобное без проблем закрывает ее. завтра дам ответ 100%
9 Эльниньо
 
18.12.13
20:28
(7) А компонента, которая позволяет выгружать компоненту, которая позволяет выгружать компоненты есть?
10 Lionee
 
18.12.13
20:47
(9)компонет** прям тавтология +рекурсия
11 Злопчинский
 
18.12.13
21:52
(9) ну блин, по идее такая ВК может выгрузить саму себя..? не..?
12 H A D G E H O G s
 
18.12.13
22:08
(11) Нет
13 AcaGost
 
18.12.13
22:30
(8) "точно не помню" - особенно то, что не знал.
14 Злопчинский
 
18.12.13
22:31
а почему?
15 H A D G E H O G s
 
18.12.13
23:03
(14) Это очевидно же!
Нельзя вызвать FreeLibrary для самого себя, область памяти с кодом станет свободной и доступной для записи, а следовательно, инвалидной еще на этапе выполнения этой процедуры. Кроме того, 1С ждет еще и результатов от ВК.
Можно было бы использовать FreeLibraryAndExitThread, но это убьет основной поток 1С.
16 Злопчинский
 
19.12.13
00:16
(15) странно.. очень странно...
17 romix
 
19.12.13
00:36
(0) Windows сама сбрасывает неиспользуемые страницы памяти под EXE/DLL в своп из ОЗУ, беспокоиться об этом не нужно.
18 H A D G E H O G s
 
19.12.13
00:39
(16) Все логично и понятно.
19 Torquader
 
19.12.13
00:49
(17) Размечтался.
А 4 Гб 32-битного адресного пространства такими "чудными" dll забиваются на ура, причём под dll, насколько я помню, отведены два верхних.