gifts2017

Регистрация 32-разрядных компонент для работы на 64-разрядном сервере 1С

Опубликовал - - (Rebelx) в раздел Администрирование - Системное

Часто COM-объекты, которые нормально работают на 32-разрядном сервере, отказываются работать на 64-разрядном сервер 1С. Решение - дальше.

32-разрядная компонента не может быть загружена в адресное пространство 64-разрядного приложения. Попробуйте зарегистрировать компоненту XXX.dll в COM+. Для этого:

  • запустите Component Services;
  • создайте пустое COM+ приложение с Activation type - Server application, укажите имя пользователя Windows, от имени которого компонента будет запускаться в адресном пространстве отдельного процесса dllhost.exe;
  • в ветке Components добавьте новую компоненту XXX.dll.

Таким способом некоторые 32-разрядные COM компоненты можно использовать в 64-разрядных приложениях. Однако, скорость работы с COM объектом при этом несколько снизится.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. gilv (Gilev.Vyacheslav) 10.05.10 14:30
практическое применение нужно указывать :)
ключи (типа пункт 15 http://gilev.ru/1c/hasp/) и в цупе 1.2.5 частенько это приходится делать
2. - - (Rebelx) 11.05.10 10:07
(1) возможно
но на самом деле причина этой публикации - использование ключей HASP SRM через COM на 64х сервере 1С (http://infostart.ru/ajax/show_comment.php?t=32439&c=36 )
3. (Nexux) 05.07.10 00:01
4. Герман (German) 20.12.10 12:19
(2) а можно тоже самое только в cmd.. был бы очень признателен
5. - - (Rebelx) 21.12.10 11:34
6. Герман (German) 17.03.11 13:51
7. Vladimir Fedorov (vladimir2010) 03.02.12 11:11
Очень помогло при регистрации GflAx.dll(не работала dll gj 64-x разрядным сервером приложений)
8. Vladimir Fedorov (vladimir2010) 03.02.12 11:11
Очень помогло при регистрации GflAx.dll(не работала dll при 64-x разрядным сервером приложений)
9. Александр Маляев (maljaev) 07.06.13 01:43
Спасибо! Правда Compound.dll таким образом зарегистрировать так и не удалось, зато ActiveMD.dll зарегистрировалась - переписал методы под нее.
10. Александр Левнёв (alevnev) 26.12.13 04:27
(9) maljaev, мне удалось зарегистрировать Compound.dll под Windows7 x64 простым способом (но не простыми были поиски решения) прописыванием в реестре следующего:

REGEDIT4

[HKEY_CLASSES_ROOT\Amber.Compound\Clsid]
@="{78191F00-4E73-11D5-918E-000000000000}"

[HKEY_CLASSES_ROOT\CLSID\{78191F00-4E73-11D5-918E-000000000000}\InprocServer32]
@="Q:\\1Cv77\\Compound.dll"

[HKEY_CLASSES_ROOT\CLSID\{78191F00-4E73-11D5-918E-000000000000}\ProgID]
@="Amber.Compound"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Amber.Compound\Clsid]
@="{78191F00-4E73-11D5-918E-000000000000}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{78191F00-4E73-11D5-918E-000000000000}\InprocServer32]
@="Q:\\1Cv77\\Compound.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{78191F00-4E73-11D5-918E-000000000000}\ProgID]
@="Amber.Compound"
...Показать Скрыть


Правда, при импорте еще несколько ключей образовалось, но автоматически:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{78191F00-4E73-11D5-918E-000000000000}]
@=""

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{78191F00-4E73-11D5-918E-000000000000}\InprocServer32]
@="Q:\\1Cv77\\Compound.dll"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{78191F00-4E73-11D5-918E-000000000000}\ProgID]
@="Amber.Compound"
...Показать Скрыть


Естественно, что во всех ключах "InprocServer32" нужно прописать свой путь к Compound.dll !
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа