Подключение ActiveX библиотеки

Автор Anton Pereverziev, 25.03.11, 20:32:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Anton Pereverziev

Здравствуйте! Я пишу ActiveX библиотеку для Комаса V11 на С#. На моем компьютере (Windovs Vista) библиотека кодключается без всяких проблем, но попытки подключить ее на другом (Windows XP) не увенчались успехом. Пробовал регистрировать библиотеку с помощью экспортирования соотверствующего ключа реестра HKEY_LOCAL_MACINE\SOFTWARE\Classes\CLSID\{... со своего компьютера. Но это не принесло результата, библиотека так и не появляется на вкладке ActiveX. Что я делаю не так? Как регистрировать библиотеку на других компах?
Заранее спасибо за ответ!

Когда ваша программа установлена на другом компьютере, она не будет работать, если ваш ActiveX компонент не скопирован и не зарегистрирован на этом компьютере. Можно использовать мастера установки, чтобы создать инсталляционный файл со всеми требуемыми компонентами, который при установке программы автоматически зарегистрирует все нужные компоненты.

Зарегистрированное местоположение компонента очень важно. Если вы переместите компонент ActiveX в другой каталог, Windows не сможет его найти и, следовательно, ваша программа не будет работать. Обратите внимание, что эта особенность не является способом защиты, а обеспечивает совместимость стандарта COM для ActiveX компонента. Прежде чем переместить компонент в другую директорию необходимо удалить его старую регистрацию, а затем переместить в нужную папку и зарегистрировать опять.

Программа regsvr32.exe (обычно находится в системной директории Windows) используется для регистрации (и её удаления) ActiveX компонентов: *.dll, *.ocx. Синтаксис командной строки regsvr32 для регистрации DLL и OCX таков:

Регистрация: regsvr32 [имя_файла]
Удаление регистрации: regsvr32 /u [имя_файла]

Для регистрации ActiveX EXE нет необходимости использовать regsvr32.exe, так как он регистрируется сам. Надо правильно указать параметры коммандной строки:

Регистрация: [имя_файла] /regserver
Удаление регистрации: [имя_файла] /unregserver

Anton Pereverziev

Попробовал регистрировать через regsvr32 но выдало вот такую ошибку "С:\Step6.dll была загружена, но найти точку входа для DllRegisterServer не удалось. Зарегистрировать этот файл невозможно." Саму процедуру dll регистрации в библиотеке взял из учебных уроков без всяких изменений. Что еще может быть не так?

Удалите все ключи в реестре которые Вы ввели в ручную, сделайте удаление регистрации regsvr32 /u [имя_файла], и попробуйте зарегистрировать опять regsvr32 [имя_файла].

Anton Pereverziev

Все, уже получилось. Делал с помощью АsmReg.exe. В дальнейшем хотелось бы уйти от ручных регистраций. Как делается регистрация с помощью мастера установки?