Имя: Пароль:
1C
1С v8
Компоненты 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) ник свой полностью оправдываешь