Архитектура 64-битных операционных систем построена таким образом, что 64-битные приложения не могут запускать 32-битные библиотеки. Для обхода этого ограничения в Windows встроена специальная обертка COM+, которая, являясь 64-битным приложением, может взаимодействовать с 32-битными библиотеками.
Для запуска станции ISpro в режиме COM из 64-битного приложения нужно зарегистрировать isstboot.dll в COM+. Все остальные библиотеки, используемые в 64-битном приложении, так же должны быть зарегистрированы в COM+.
Библиотеки регистрируется на компьютере, на котором будет запускаться COM-станция ISpro.
Регистрация 32-битной библиотеки в COM+
Пошаговое описание регистрации библиотек на примере isstboot.dll:
- Зайти в Пуск / Панель управления / Администрирование. Запустить Службы компонентов.
- В появившемся окне развернуть ветку Службы компонентов / Компьютеры / Мой компьютер / Приложения COM+.
- В ветке Приложения COM+ добавить новое приложение. Появится Мастер установки приложений COM+.
- В окне выбора установки или создания нового приложения выбрать пункт «Создать новое приложение».
- В окне создания нового приложения ввести имя нового приложения. Для удобства лучше вводить имя DLL. Например, для isstboot.dll ввести имя isstboot, для TRDZKG_C.dll ввести имя TrdZkg. Способ активации - «Серверное приложение».
- В окне удостоверения приложения выбрать «Указанный пользователь» и ввести логин и пароль пользователя ОС, который будет запускать станцию ISpro.
- В окне добавления ролей приложения оставить все без изменений и нажать «Далее».
- В окне добавления пользователей для ролей добавить пользователя – учетную запись ОС, под которой будет запускаться станция ISpro.
- Завершить мастер установки приложений COM+. В Службах компонентов / Приложениях COM+ появится новый объект isstboot.
- В ветке созданного объекта перейти в ветку «Компоненты» и создать новый компонент. Появится Мастер установки компонентов COM+.
- В окне импорта или установки новых компонентов выбрать пункт «Установка новых компонентов», и в диалоге выбрать нужную DLL (в данном примере это isstboot.dll). Завершить мастер.
- Открыть свойства только что созданного компонента (в примере это ISStBoot.SysStartup.1), перейти на вкладку «Безопасность», проверить в списке «Явно установленные для выделенных объектов роли» установлен ли параметр напротив роли CreatorOwner – если не установлен, то требуется его установить.
Вызов COM-объекта, обернутого в прослойку COM+, осуществляется от имени созданного COM+ компонента (в описанном выше примере это ISStBoot.SysStartup.1).