Как зарегистрировать dll в inno setup
Обновлено: 02.07.2024
С правилами форума ознакомился, но так как по своему вопросу ни чего не нарыл - открываю тему.
Проблема следующая:
немогу создать инсталлятор для своего проекта.
Перепробовал массу соответствующих программ, но воз и ныне там:(.
В innoSetup.5.19 не нащел - секции или параметров флагов (имеется ввиду инфа по этому вопросу) для регистации DLL и OCX файлов.
хотя прогу скачал вместе с 60-страничным хелпом, разжованным - дальше некуда.
Как не пробовал только. А все в пустую. на другой винде, пока бэйсик не поставишь - прога не идет.
------------------------------
В ninstaller.13-10 есть визуальный чек-поинт: "регистрировать как DLL/OCX", однако (хоть и рутина неимоверная загонять почти 100 файлов проекта в пятиполосный лист-бокс, и я это сделал с восьмого раза:)), прога после инсталляции все равно не пошла.
Т.е. она запустилась, три раза сматерилась, что нет какой то регистации в реестре, открыла стартовое окно первого запуска,
а после перехода на страницу сбора информации для БД выкидывает окно: run time error 91 и кирдык.
дело в том, что после первых попыток использования этой проги в список регистрируемых DLL/OCX попадали не все файлы библиотек, используемых моим проектом. В этих случаях программа после инсталляции сообщала об этом. началось все со злосчастного DBGRID32.OCX.
потом пошли comdlg32.ocx, Mscomct2.ocx. Добил меня - comdlg32.dll. И за каждым разом приходилось переделывать весь проект, т.к. ninstaller.13-10 не сохраняет в проекте список файлов (после закрытия он обнуляется).
короче как ни бьюсь - ни чего не выходит.
Сейчас на форуме попалось на глаза - innoSetup.5.19 поддерживает регистрацию DLL/OCX компонентов. КАК ЭТО РЕАЛИЗОВАТЬ?
Кто знает - как до начала создания инсталлятора определить, какие компоннеты и библиотеки ипользует проект (стандартный метод: "компоненты - добавить компоненты - расположение" - пройден - исписан лист бумаги этими самыми компонентами, все равно оказались не все)?
и последнее: что еще не зарегистрировал мой последний инсталлятор, если в принципе, моя прога, хоть с руганью, но запустилась?
точнее - какие еще камни скрыты под водой бэйсика, ведь после того, как установил ВБ-6про проблема, как вобщем и следовало ожидать, снялась?
Я уже в инсталлятор добавил и бэйсиковский регистратор OCX-ов с автозапуском, и все его рег-файлы. Заставил инсталлятор самостоятельно создавать новые ветки в реестре с данными из этих рег-файлов.
Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.
В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.
Дальнейшие шаги описаны в предположении, что DLL, которую нужно зарегистрировать, уже находится в нужном расположении: папке C:\Windows\System32, C:\Windows\SysWOW64 или, в некоторых случаях — отдельных папках программ, к которой относится соответствующая библиотека, например, для 1С — C:\Program Files\1cv8\номер_версии\bin (или Program Files x86 в случае 32-битной версии).
Прежде чем приступить к регистрации библиотеки, учитывайте следующие моменты:
- В x64 версиях Windows 64-битные DLL хранятся в System32, а 32-битные — в SysWOW64 (у некоторых начинающих пользователей бывает обратное предположение исходя из имён папок).
- Файлы DLL x64 и x86 (32-бит) — это разные файлы. И если прямого указания на разрядность в месте загрузки файла нет, то чаще это 32-битный файл (что не мешает ему работать в x64 системе), но это не всегда так.
- Для регистрации библиотеки DLL используется системный инструмент regsvr32.exe, который также доступен в двух версиях, которые лежат в папках System32 и SysWOW64 (в случае 64-битных систем). По умолчанию при описываемых далее действиях запускается x64 версия.
- 32-битным программам и играм (по умолчанию устанавливаются в Program Files x86 в 32-битных системах) для работы нужны 32-битные DLL, не зависимо от разрядности Windows.
Сам процесс регистрации в общем случае состоит из следующих шагов:
Почему не удается зарегистрировать DLL
Ошибка при регистрации с помощью regsvr32 вида «Точка входа DllRegisterServer не найдена» говорит о том, что эта библиотека DLL не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:
но с большой вероятностью и это не поможет.
У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.
Видео
Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.
Конфигурация компьютера | |
Процессор: Intel Core i5-4570, 3200 MHz | |
Материнская плата: Asus Z97-K | |
Память: 2 x 8Gb DDR3-1333 Corsair Vengeance LP CML16GX3M2A1600C9 | |
HDD: Samsung SSD 850 PRO 256G (238Gb), WDC WD1001FALS (1Tb, 7200 RPM, SATA-II), WDC WD10EFRX (1Tb, SATA-III) | |
Видеокарта: MSI N750Ti (MS-V310) | |
Звук: Realtek ALC887 | |
Блок питания: Chieftec GPS-650AB 650W | |
CD/DVD: HL-DT-ST DVDRAM GSA-4167B | |
Монитор: 24" Philips 240PW9ES | |
ОС: Windows 7 Ultimate x64 SP1 | |
Индекс производительности Windows: 7.6 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы.
- программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;
- Программа для объединения нескольких скриптов InnoSetup в один.
Последняя версия: 3.0 [23.07.2009]
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Конфигурация компьютера | |
Процессор: Intel Core i5-7600K 3800MHz | |
Материнская плата: MSI Z170A GAMING M3 | |
Память: Kingston HyperX Fury Black DDR4 2x8GB 2400MHz | |
HDD: Kingston UV500 M.2 120GB,HDD Toshiba P300 500GB, SSD ADATA Premier SP580 120GB | |
Видеокарта: MSI GeForce GTX 1050 Ti GAMING X 4G | |
Блок питания: Corsair CX-Series CX650M | |
ОС: Windows 10 Pro x64 |
Варианты решения проблемы
Имеется несколько методов, позволяющих устранить данную проблему. Рассмотрим каждый из них подробнее.
Способ 1: OCX/DLL Manager
OCX/DLL Manager – это маленькая программа которая может помочь зарегистрировать библиотеку или файл OCX.
OCX/DLL Manager также умеет отменять регистрацию библиотеки, для этого понадобится выбрать в меню пункт «Unregister OCX/DLL» и в последствии проделать все те же операции, как и в первом случае. Функция отмены может вам понадобиться для сравнения результатов при активированном файле и при отключенном, а также в процессе удаления некоторых компьютерных вирусов.
В процессе регистрации, система может выдать вам ошибку, говорящую о том, что требуются права администратора. В таком случае, нужно запустить программу нажав на неё правой кнопкой мыши, и выбрать «Запуск от имени администратора».
Способ 2: Меню «Выполнить»
Можно зарегистрировать DLL, используя команду «Выполнить» в стартовом меню операционной системы Windows. Для этого нужно будет произвести следующие действия:
- Нажать клавиатурную комбинацию «Windows + R» или выбрать пункт «Выполнить» из меню «Пуск».
Этот пример подойдёт вам в том случае, если операционная система установлена на диск С. Если она находится в другом месте, то нужно будет поменять букву диска или воспользоваться командой:
В таком варианте программа сама находит папку где у вас установлена ОС и запускает регистрацию указанного DLL файла.
В случае с 64-разрядной системой у вас будет две программы regsvr32 — одна находится в папке:
и вторая по пути:
Это разные файлы, которые используются раздельно для соответствующих ситуаций. Если у вас 64-битная ОС, а файл DLL 32-битный, тогда сам файл библиотеки должен быть помещен в папку:
и команда будет выглядеть уже так:
Способ 3: Командная строка
- Выберите команду «Выполнить» в меню «Пуск».
- Впишите в открывшемся поле для ввода cmd.
- Нажмите «Enter».
Перед вами появится окно, в котором нужно будет вводить те же команды, что и во втором варианте.
Надо отметить, что у окна командной строки имеется функция вставки скопированного текста (для удобства). Найти это меню можно, нажав правой кнопкой на пиктограмме в левом верхнем углу.
Способ 4: Открыть с помощью
- Откройте меню файла, который будете регистрировать, нажав по нему правой кнопкой мыши.
- Выберите «Открыть с помощью» в появившемся меню.
или в случае, если вы работаете в 64-битной системе, а файл DLL 32-разрядный:
Возможные ошибки
«Файл не совместим с установленной версией Windows» — это означает, что вы, скорее всего, пытаетесь зарегистрировать 64-разрядную DLL в 32-битной системе или наоборот. Воспользуйтесь соответствующей командой, описанной во втором способе.
В заключение нужно сказать, что суть всех предложенных вариантов одна и та же — это просто разные методы запуска команды регистрации — кому как удобнее.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Читайте также: