|
Компоненты Native API и их кэширование НаСервере |
☑ |
0
vladon
01.07.13
✎
16:17
|
Добрый день.
Разрабатываем компоненту Native API для работы &НаСервере.
Для клиентов при замене бинарника в макете всё понятно - надо вызвать УстановитьВнешнююКомпоненту.
Что делать в случае с сервером? УстановитьВнешнююКомпоненту, естественно, не поможет.
Помогает только рестарт службы сервера 1С. А можно ли без рестарта службы обойтись?
|
|
1
HeroShima
01.07.13
✎
16:20
|
Windows?
|
|
2
vladon
01.07.13
✎
16:22
|
(1) да, Windows 2008R2 (x64 ессно), сервер 1С тоже 64-битный
|
|
3
vladon
01.07.13
✎
16:55
|
апп
|
|
4
H A D G E H O G s
01.07.13
✎
16:58
|
(3) Сделайте еще одну компоненту с реализацией
FreeLibrary()
и напишите о результате.
|
|
5
H A D G E H O G s
01.07.13
✎
17:13
|
Вам поможет функция
GetModuleHandle()
|
|
6
H A D G E H O G s
01.07.13
✎
17:13
|
Песатели библиотек.
|
|
7
vladon
01.07.13
✎
17:23
|
(4) (5) но зачем? этого же нет в документации (ExtCompT.htm)
|
|
8
H A D G E H O G s
01.07.13
✎
17:25
|
(7) Ну и что.
Библиотека остается подгруженной к процессу (вообще то конечно в Винде), пока 1С не завершиться, даже если все объекты ее привели к Неопределено. Так было в толстом, так, походу, и на сервере.
|
|
9
H A D G E H O G s
01.07.13
✎
17:26
|
(7) Я в Толстом так делал, прокатывало.
|
|
10
HeroShima
01.07.13
✎
17:29
|
(6) Таким образом можно отлинковать dll-ку прилинкованную нединамически?
|
|
11
H A D G E H O G s
01.07.13
✎
17:33
|
(10) ВК-шечки линкуются динамически.
|
|
12
H A D G E H O G s
01.07.13
✎
17:34
|
(10) Аа, не понял вопроса.
Проверить то - как 2 кнопки в дельфишнике создать.
|
|
13
oleg_km
01.07.13
✎
17:34
|
(10) А что такое библиотека, прилинкованная нединамически? Все dll так или иначе прилинковываются динамически через LoadLibrary(). Соответственно их можно отлинковать FreeLibrary()
|
|
14
H A D G E H O G s
01.07.13
✎
17:36
|
(13) Это когда процедурка импортится по имени/порядковому номеру в описании.
Без всяких GetProcAddress()
|
|
15
H A D G E H O G s
01.07.13
✎
17:37
|
(13) Но я думаю, Дельфя в таком случае делает все (LoadLibrary(), GetProcAddress()) за нас.
|
|
16
oleg_km
01.07.13
✎
17:41
|
(15) Конечно, просто в таком случае компилятор делает нужные настройка, а загрузчик библиотек все равно вызывает LoadLibrary
|
|
17
loh_pedalny
01.07.13
✎
18:32
|
(0) можно попробовать почистить каталог временных файлов. только осторожно... закешированные там валяются
|
|
18
acsent
01.07.13
✎
18:34
|
(17) ник свой полностью оправдываешь
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший