Как зарегистрировать dll в windows 7 scaner1c

Проблемы с регистрацией Scaner1C.dll
   Saint

18.12.04 — 17:38

Запускаю regsvr32 «C:Program Files1Cv77BINScaner1C.dll»
Появляется окно: Ошибка при вызове LoadLibrary(«C:Program Files1Cv77BINScaner1C.dll») — Не найден указанный модуль
Файл лежит на месте, пробовал регистрировать с разных мест в том числе из корня C:
Другие dll-ки регистрируются нормально.
Пробовал на 2-х разных машинах, на обоих результат один и тот же.

   IvanPetrov

1 — 18.12.04 — 17:44

У меня Scaner1C.dll лежит не в BIN, а в папке базы.

   Saint

2 — 18.12.04 — 17:48

1, индеферентно, там тоже пробовал.
Не регестрируется сволочь.
В 1С тоже косяк. ЗагрузитьВнешнююКомпоненту(«Scaner1C.dll») возвращает 0, хотя путь к ней показывает правильный.

   Torin

3 — 18.12.04 — 17:53

ЗагрузитьВнешнююКомпаненту(«Scaner1c.dll»);

   IvanPetrov

4 — 18.12.04 — 17:55

2(0) Сейчас еще раз зарегистрил — все прошло… Встал на Scaner1C.dll — правый клик — «Открыть с помощью…» — «Далее» — WinNTSystem32regsvr32.exe — Открыть — написала, что все в норме. Я что-то сделал неправильно?

   MaG

5 — 18.12.04 — 17:56

У меня похлеще проблема — сканер ( Metrologik, по моему так пишеться) после запуска 1с работает ну минуты две от силы, а потом просто вешаеться, при чем сам сканер ( пикает — типа я ШК прочитал и отдал куда нужно) а вот в 1с нихрена нет, в чем могут быть вила ??

   Saint

6 — 18.12.04 — 17:57

3, с чего ты взял?
Если ЗагрузитьВнешнююКомпаненту<<?>>(«Scaner1C.dll»)<>0 Тогда
{Обработка.ПодключениеТорговогоОборудования.Форма.Модуль(124)}: Функция не обнаружена (ЗагрузитьВнешнююКомпаненту)
При проверке модуля обнаружены синтаксические ошибки!

ЗагрузитьВнешнююКомпоненту — красным подсвечено.

   Torin

7 — 18.12.04 — 17:59

Сканер = СоздатьОбъект(«AdInn.Scaner45»);

   Saint

8 — 18.12.04 — 17:59

4, может файлик левый у меня, отправь плиз на t1c@istnet.ru

   IvanPetrov

9 — 18.12.04 — 18:01

2(6) А что за конфигурация?

   Saint

10 — 18.12.04 — 18:02

7, вроде такая последовательность?
Если ЗагрузитьВнешнююКомпоненту(«Scaner1C.dll»)<>0 Тогда
    Сканер=СоздатьОбъект(«AddIn.Scaner45»);
Только туда то он уже не заходит. ЗагрузитьВнешнююКомпоненту(«Scaner1C.dll») = 0

   Torin

11 — 18.12.04 — 18:02

   IvanPetrov

12 — 18.12.04 — 18:05

2(8) Ушло. Брал на Атоле. Лови.

   Saint

13 — 18.12.04 — 18:07

12, сеньк.
11, щас гляну.

   Saint

14 — 18.12.04 — 21:19

11, так затык то именно в начале, когда:
Если ЗагрузитьВнешнююКомпоненту(Компонента) = 0 Тогда
Оно 0. И дальше ничего…

   Torin

15 — 18.12.04 — 21:31

1.Права пользователя ОС
2.Место нахождение ВК ( Bin , КаталогИБ, Window)

   Saint

16 — 18.12.04 — 21:40

15, Администратор.
Уже везде лежит, но обращается к файлу который в папке базы лежит:
Ошибка при загрузке компоненты S:SQLTRDObuvScaner1C.dll. Компонента не загружена.
Файл там есть, проверял, глаза протирал…

   Saint

17 — 18.12.04 — 22:30

Сейчас попробовал на девятке (торговля 933) все ОК.
На 8-ке (879) почему то не пашет.
Нифига понять не могу… :(

   IvanPetrov

18 — 18.12.04 — 22:42

2(17) Не, ну нехило, а?! То, что речь идет о 8-ке, выясняется после 5 (ПЯТИ) часов обсуждения! Я что, должен это был сам угадывать? Все, что я говорил, относится к 7-ке. С 8-кой не работал, ничего сказать не могу.

   Saint

19 — 18.12.04 — 23:07

Платформа 7.7, 8-ая торговля.
Какая разница какая конфа, не работает метод…

   IvanPetrov

20 — 18.12.04 — 23:12

2(19) Виноват, не понял (наверно, пора спать). А если взять с www.atol.ru дистрибутив драйвера, развернуть его и по-нормальному проинсталировать?

   Saint

21 — 18.12.04 — 23:33

Попробую сейчас. Но думаю врят ли поможет.
А спать действительно пора, завтра еще раз попробую на свежую голову.

2 момента остались не выяснеными:
1. Почему не регестрируется эта DLL-ка
2. Почему именно в 8-ой торговле не пашет.
Может нужно еще что-то обновить ?

   SlonSpb

22 — 18.12.04 — 23:48

Вы будете смеяться, но если взять *полный* дистриб с атола, проинсталить и вперёд, то даже регистрировать не надо. вообще, у меня сложилось впечатление ( правда, не очень чёткое ), что она, эта компонента, не нуждается в регистрации.
У меня была 100% такая же проблема летом — проинсталил на одну тачку в сети, там работал сканер. Начал запускать на других — получил сос. Регистрил. Аналогично, сос. Т.е. она не регистрировалась с таким же сообщением, с чего я вывел, что её и не нужно регистрировать, т.к. при стандартной *инсталляции* инсталлер атола делает что-то другое. Что именно — я искать не стал, просто инстальнул на каждой тачке, и всё запахало с песней.
да, ещё, кстати, эта компонента ПОЧЕМУ-ТО не грузилась с сетвых дисков. хотя скорее всего это были какие-то локальные особенности, но я предпочёл зацементировать проблему, положив компоненту в с: корень каждой машины, и указав в глобальнике именно такой путь в «загрузить»
Всем удачи

   Saint

23 — 19.12.04 — 00:32

Блин, в том и проблема, что он лежит на сетевом, а зарегить dll не получается. 1С обращается по дефолту к тому что лежит у нее в базе, насколько я понял.

   Saint

24 — 19.12.04 — 00:34

Хотя один фиг. Прописал путь к локальной dll. Та же ошибка.

   SlonSpb

25 — 19.12.04 — 01:07

Инсталляцию полную сделай. А не просто ДЛЛ перепиши.

   Torin

26 — 19.12.04 — 09:55

(22) DLL от Атол запускается без инсталяции.
1.MUI?
2.AD?
100% дело в правах.

   Saint

27 — 19.12.04 — 12:42

26, да админисраторские права…

  

Saint

28 — 19.12.04 — 13:30

Всем спасибо. Все разрешилось установкой драйвера от Атола.
Проблема видимо крылась в файле vcl30.dpl, который надо было обновить.

Содержание

  1. Библиотека DLL файлов
  2. Новые DLL
  3. SCANER1C.DLL
  4. Скачать SCANER1C.DLL
  5. Как скачать SCANER1C.DLL и установить ее
  6. Ошибка DLL? Помогут наши спецы!
  7. В 1С сканер штрих кода пишет, что драйвер не установлен
  8. Проблема с регистрацией dll

Библиотека DLL файлов

Новые DLL

SCANER1C.DLL

Описание dll файла: ATOL
Вероятная ошибка dll: отсутствует SCANER1C.DLL
Совместимые операционные системы: Windows 7, Windows 8, Windows 10

Скачать SCANER1C.DLL

Ниже расположены прямые ссылки на файлы библиотеки dll из нашей коллекции.

ВАЖНО! Устанавливая библиотеку, вы принимаете на себя все риски, связанные с вмешательством в работу вашей операционной системы.

Как скачать SCANER1C.DLL и установить ее

Откройте загруженный zip-файл. Извлеките SCANER1C.DLL в папку на вашем компьютере. Мы рекомендуем вам распаковать его в директорию программы, которая запрашивает SCANER1C.DLL. Если это не работает, вам придется извлечь SCANER1C.DLL в вашу системную директорию. По умолчанию это:

C: Windows System (Windows 95/98/Me)
C: WINNT System32 (Windows NT/2000)
C: Windows System32 (Windows XP, Vista, 7, 8, 8.1, 10)

Внимание! Скачать SCANER1C.DLL из сети Интернет очень легко, однако велика вероятность заражения вашего компьютера вредоносным кодом. Пожалуйста, проверяйте ВСЕ скаченные из Интернет файлы антивирусом! Администрация сайта download-dll.ru не несет ответственность за работоспособность вашего компьютера.

Обратите также внимание, что каждый файл имеет версию и разрядность (32 или 64 бита). Установка в систему DLL файлов помогает не в 100% случаев, но в основном проблемы с программами и играми решаются таким незамысловатым методом. Чаще всего с DLL вы сталкиваетесь при ошибках в операционной системе. Некоторые библиотеки поставляются с системой Windows и доступны для любых Windows-программ. Замена DLL-файлов с одной версии на другую позволяет независимо наращивать систему, не затрагивая прикладные программы.

Ошибка DLL? Помогут наши спецы!

Не можете разобраться? Не запускается игра? Постоянно появляются ошибки DLL? Опиши подробно свою проблему и наши специалисты быстро и квалифицированно найдут решение возникшей неисправности. Не надо стеснятся задать вопрос!

Источник

В 1С сканер штрих кода пишет, что драйвер не установлен

11

«Не установлен драйвер сканера штрих-кода» что делать?

Проблема возникает если подключать сканер штрих-кодов к 1С. Рассмотрим несколько случаев ошибок и их решения.

При переустановке 1С могут слететь драйвера. Чтобы решить проблему, нужно установить драйвера прямо из 1С. В дополнительной информации по настройке параметров сканера штрих-кода есть ссылка сайт, где можно скачать актуальную версию драйвера. Если ссылки нет, стоит обратиться в компанию поставщика сканера. Также, можно найти драйвера в свободном доступе в интернете.

Проблема может быть связана с различием разрядности платформы и библиотеки драйверов. Пример: библиотека, идущая вместе с конфигурацией 32-битная, а платформа установлена 64-битная. Чтобы решить проблему, нужно установить версию платформы на 32 бита, она будет работать с библиотекой.

Несоответствие версии драйвера

Проблема возникает, когда версия драйвера не поддерживается оборудованием. Чтобы решить проблему, нужно установить нужную версию драйвера. Она указывается в описании обработок обслуживания.

Драйвер не загружен

Ошибка возникает, если не произвели установку и регистрацию драйвера в Windows. Нужно проверить, проводилась ли регистрация драйвера и не сменился ли путь к нему. Если драйвера нет – произведите регистрацию этой компоненты.

Установка драйвера вручную для «1С: Управление торговлей»

Установка драйвера вручную для «1С: Предприятие»

Для этого способа применяется драйвер от «1С: Сканер штрих-кода». Порядок установки:

Продолжите установку оборудование и пройдите тестирование сканера. Проблема должна быть решена.

Источник

Проблема с регистрацией dll

Здравствуйте, дорогие форумчане.
Не судите строго.Ранее создавал тему «Windows server 2008 R2 слетает зарегистрированный dll». Проблема до сих пор не решена, слетает зарегистрированная dll эквайринговой системы. На инфостарте нашел статью «Решение проблем с регистрацией внешних компонент в терминале». Посмотрел что у меня в конфигураторе:

ИначеЕсли Строка(ДрайверУстройства) = «СБ РФ: Эквайринговые терминалы» Тогда

#Если ВебКлиент Тогда

ПодключитьВнешнююКомпоненту(«AddIn.SBRFCOMObject»);
ОбъектДрайвера = Новый(«AddIn.SBRFCOMExtension»);
#КонецЕсли

Попробовал как в статье второй вариант, dll вообще не регистрируется и пишет «Драйвер не установлен и версия не определена. Подскажите как можно подключить dll другими способами в терминале и как в статье на инфостарте. Заранее спасибо

Здравствуйте!
Я автор статьи на инфостарте «Решение проблем с регистрацией внешних компонент в терминале». Попробовал разобраться в вашей проблеме.
Для начала попробовал установить драйвер эквайринговой системы на локальном компе в УТ 11. Пишет «Драйвер не установлен». Значит проблема с регистрацией dll.

В справочнике «ПодключаемоеОборудование» есть макет «ДрайверСБРФЭквайринговыеТерминалы». В нем собственно и хранится нужная нам dll.
Щелкаем на этом макете и нажимаем кнопочку «Выгрузить в файл».
Файлу даем любое имя и расширение zip.
Открыв архив видим 4 файла, в том числе нужный нам SBRFCOM.dll.
Пробуем регистрировать его с помощью команды regsvr32.exe например в папке C:|WindowsSysytem32. Регистрация проходит успешно.
Но 1С все равно драйвера не видит.

С помощью программы OLECOM Object Viewer от можно определить что dll действительно успешно зарегистрировалась и в системе имеется COM-объект с ProgID = AddIn.SBRFCOMObject. Однако ОбъектДрайвера = Новый(«AddIn.SBRFCOMExtension») не создается.

Эти файлы можно получить у работников сбербанка либо скачать в этой публикации:
http://infostart.ru/public/128682/
После копирования этих файлов в каталог где зарегистрирована SBRFCOM.DLL в 1С видим следующее:
«Драйвер установлен», «Версия не определена».
Это нормально. Данная dll не сообщает 1С о своей версии.

Таким образом проблема с регистрацией dll решена.
Далее используйте рекомендации в моей статье по поводу регистрации в терминале.
Я думаю все должно заработать.

(8)Огромное спасибо, что откликнулись. С эквайринговым терминалом мучаюсь уже где то полугода. В конфигурации Розница 1.0 терминал мне удалось подключить без проблем.

В конфигурации УТ 11 когда был один терминал и обычный файловый вариант у меня все прекрасно работало, когда увеличилось количество рабочих мест и появился второй терминал, появились проблемы.Была установлена Windows server 2008 R2 x64 + RDP. И начались проблемы описанные на форуме инфорстарта по адресу http://forum.infostart.ru/forum33/topic63634/.
Помогите разобраться сколько мучаюсь и обращаюсь никто не может помочь.

Я так понимаю что со сканерами проблема решена.
Осталась только с эквайринговым терминалом и с тем что слетает зарегистрированная dll. А вы сделали все так как описано в моей статье?

1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке в папке C:WINDOWSSYSWOW64.

При этом вообще пишет Драйвер не установлен и версия не определена. Попробовал еще и пользователя зарегить под администратором. также ничего не помогло.Может есть какое ограничение у пользователей в терминале на регистрацию и использование dll. На просторах интернета нашел статью http://www.miko.ru/blogs/portnovblog/107/

Ну, в 64-х разрядной Windows отведены специальные папки для dll:
System32 для тех что могут работать в 64-х разрядной среде и SysWOW64 для dll изначально написанных под 32-х разрядную среду исполнения.
Эта dll для эквайрингового терминала скорее всего была написана под 32-х разрядную среду. Поэтому мне кажется правильнее ее поместить в папку C:WINDOWSSYSWOW64, а не в папку пользователя ExtCompT.

Ограничения на регистрацию dll у пользователей терминала конечно же есть.
Об этом как раз я и писал в своей статье.
У них нет прав на запись в ветку системного реестра HKEY_CLASSES_ROOT.
Поэтому происходит отказ в регистрации внешней компоненты.

Я попробовал у себя под терминалом Windows server 2008 R2 x64 установить драйвера и посмотреть что получится.
У меня все нормально. Пишет «Драйвер установлен», «Версия не определена».
Так и должно быть.

Источник

Regsvr32 (Microsoft Windows Register Server) — это системная утилита, предназначающаяся для регистрации и отмены регистрации элементов управления ActiveX, компонентов фильтров (кодеков) и компонентов библиотек DLL в системе Windows посредством внесения изменений в реестр.

DLL (Dynamic Link Library, Библиотека Динамической Компоновки) — динамически подключаемый набор подпрограмм (функций), логически объединенных в единый бинарный файл, которые могут быть многократно/одновременно динамически загружены (использованы) различными приложениями, требующими для своего функционирования данные функции.

[краткая] история распределенного кода

Не лишним тут, я думаю, будет познакомиться с историей распределенного кода, что даст нам понимание причин возникновения и развития динамических библиотек. А это, в свою очередь, даст очевидное представление о том, какой функционал несет в себе средство regsvr32 и для чего оно, собственно, предназначается.

Линейное программирование

На заре развития языков программирования, при создании (разработке) программ использовался так называемый линейный подход, который заключался в том, что код писался/выполнялся «сверху-вниз», в четкой последовательности от начала к концу. Но как только человек научился писать код чуть сложнее, чем простой вывод фразы «Hello, World!», перед ним тут же встало несколько проблем, которые показали, что подход имеет очевидные недостатки:

  • исходный код необходимо было копировать из старого проекта в новый;
  • копирование старого кода приводило к ошибкам, путанице, нестыковкам, необходимости исправления и подгонки под новый проект;

Процедуры (функции)

Стояла очевидная проблема разделения, а так же многократного использования кода. Поэтому, по мере развития технологий программирования появилось процедурное (функциональное) программирование, которое было основано на том, что области кода выделялись в отдельные блоки под названием функции (процедуры), к которым имелась возможность многократного обращения (вызова) из любого места программы. Это существенно упростило архитектуру приложения, решило важную проблему дублирующегося кода, поскольку теперь вместо того, чтобы программе использовать повторяющиеся участки кода на протяжении всего процесса выполнения, проще разместить его в отдельной процедуре (функции) и многократно вызывать [по мере необходимости]. Тем не менее, данный подход требовал доработки, поскольку:

  • позволял разделять код программы на логические части лишь в рамках одной языковой среды разработки.

Оверлеи

В условиях дороговизны оперативной памяти и отсутствия у многих операционных систем того времени (MSDOS) механизма виртуализации адресного пространства процесса (виртуальной памяти), обеспечивающего достаточное адресное пространство для приложений, появилась необходимость загружать в ограниченное пространство [дорогой] физической памяти много превосходящие по размеру код/данные приложений. Следствием всего этого явилось разбиение кода/данных программы на обособленные модули, получившие название оверлеев (overlay). Данный механизм непрямую не связан с разделением кода, тем не менее мы о нем упомянем, как о существенной вехе в развитии механизмов разделения кода.

Прерывания

Первой попыткой решения проблемы распределения кода был механизм программных прерываний, который позволял создавать (размещать в микрокоде BIOS) и вызывать сервисы, доступные любым операционным системам и программам. Таблица прерываний включала 255 векторов (адресов), каждый из которых задавал процедуру обслуживания определенного прерывания. Данный сервис мог лешгко программироваться пользователями, то есть любая программа могла [пере]назначить одно из доступных программных прерываний, предоставив, таким образом, общесистемный сервис. И не смотря на все положительные стороны подобного подхода, он имел и ряд серьёзных недостатков:

  • Фиксированное количество сервисов, ограниченное размером таблицы векторов прерываний (255);
  • Отсутствие обработки исключительных ситуаций.
  • Отсутствие системы безопасности;
  • Обособленный синтаксис, несовместимости с синтаксисом языков высокого уровня (необходимость оперировать низкоуровневыми регистрами);
  • Отсутствие контроля типов и корректности данных;

Динамические библиотеки

Дальнейшее развитие данной концепции (а так же развитие ОС) привело к появлению динамически загружаемых библиотек (называемых упрощенно динамическими библиотеками, DLL). Отличительной особенностью было то, что обращение к функционалу этих библиотек могло осуществляться из кода на любых языках и из любых средств разработки [в рамках операционной системы]. На механизме динамических библиотек построен весь программный интерфейс (WinAPI) операционных систем Mirosoft Windows, поэтому любое API, любой сервис, так или иначе базируются на DLL. Характерная особенность динамической библиотеки заключается в том, что она может использоваться сразу несколькими приложениями, а система обеспечивает присутствие в памяти всего-лишь одного экземпляра [кода] динамической библиотеки для всех приложений, которые содержат ссылки на функции данной библиотеки. DLL имели ряд выраженных недостатков:

  • при загрузке динамической библиотеки [в адресное пространство процесса] использовалось лишь её символическое имя, поскольку отсутствовал механизм устойчивой идентификации необходимых библиотек, соответственно:
    • в подгруженной библиотеке [сторонней/не той версии] мог содержаться код, разрушающий структуры данных и кода вызывающего приложения.
    • подгружаемая библиотека [сторонняя/не той версии] могла использовать контекст безопасности основного приложения для получения доступа к ресурсам, к которым в обычных условиях доступа у нее нет.
  • не проверяется информация о типах параметров функции;
  • не проверяется корректность передаваемых параметров функции;

Компонентная объектная модель (COM)

Следующим этапом развития концепции разделяемого кода стало появление компонентной объектной модели (COM, Component Object Model). COM обеспечивал возможность разделять код на отдельные независимые компоненты, которые (в отличие от предыдущих реализаций) подключались уже не по имени файла, а при помощи специального глобального идентификатора (GUID). GUID ни что иное как 128-битный глобальный идентификатор (GUID, Global Unique ID), идентифицирующий конкретный объект класса библиотеки. Каждый компонент определялся [глобально] собственным уникальным идентификатором, и в системе хранилась единая база информации по компонентам, в которой содержалась вся информация: начиная от имени файла, в котором расположен сам компонент, и заканчивая сетевыми настройками. База COM хранится в реестре, в разделе HKEY_CLASSES_ROOT:

  • HKEY_CLASSES_ROOTCLSID — GUID идентификаторов классов компонентов;
  • HKEY_CLASSES_ROOTInterface — IID идентификаторов интерфейсов (для реализующих их компонентов);
  • HKEY_CLASSES_ROOTTypeLib — Информация о файлах, в которых хранятся библиотеки;

Причем сам HKEY_CLASSES_ROOT представляет собой комбинацию разделов HKCUSoftwareClasses (для текущего пользователя) и HKLMSoftwareClasses (для машины в целом).

Чтобы как-то отличать идентификаторы классов от иных [похожих] системных идентификаторов, применительно к СОМ эти идентификаторы называются идентификаторами класса, и для них используется аббревиатура CLSID.

Примером значения CLSID может служить строка вида {2DB47AE5-CF39-43C2-B4D6-0CD8D90946F4}. В глобальном смысле данные уникальные номера «не повторяются» и уникально идентифицируют компоненты системы, что говорит нам об уникальности объекта класса библиотеки в пределах системы. Подразделами в этих ветках реестра могут быть:

HKCRCLSID<GUID>LocalServer    = <полный путь к 16-битному файлу>

                  LocalServer32  = <полный путь к 32-битному файлу>

                  InprocServer   = <полный путь к 16-битному файлу>

                  InprocServer32 = <полный путь к 32-битному файлу>

То есть параметр (default) этих ключей содержит полный путь к зарегистрированной библиотеке.
Тем не менее в компонентной объектной модели так же присутствовал ряд проблем:

  • COM базируется на динамических библиотеках (в них то и размещаются компоненты). А как мы помним с DLL сохранялась проблема, связанная с совпадением имён файлов библиотек;
  • База данных COM располагается в реестре, и работать с ней предлагалось напрямую, без какого-либо специализированного API. При том, что раздел базы данных является общедоступным, после продолжительной эксплуатации системы он традиционно приходил в рассогласованное состояние (приводящее к множеству системных ошибок).

Сборки (assembly)

Следующая попытка усовершенствовать механизмы распределения кода была предпринята в процессе разработки платформы .NET Framework. В процессе разработки платформы было предложено решение, в основе которого лежат так называемые сборки (assembly), которые являются наименьшими строительными блоками .NET, призванными обеспечить безопасное разделение кода в .NET-приложениях.

Сборка (assembly) — коллекция типов и ресурсов, сгруппированная в один или нескольких файлов для совместного функционирования, образующая логическую функциональную единицу.

Сборка состоит из: манифеста (описывающего сборку), метаданных (описывающих типы), откомпилированного MSIL-кода сборки (.Net-байткод), ресурсов (графика, звуки и прч). Поскольку сборки включают в себя сведения о содержимом, версиях и зависимостях, работоспособность связанных с ними приложений не зависит от внешних источников (таких как реестр). Сборки существенно снижают риск возникновения проблем с библиотеками DLL, а также повышают надежность и простоту развертывания приложений.

Смысл регистрации библиотек и элементов управления

Но, вернемся к нашим библиотекам :)

По какой причине, для использования функций DLL в системе непременно требуется их регистрация? Ответ: чтобы система смогла их найти!!

Казалось бы, ну помести ты DLL в рабочую директорию приложения, и вопрос с нахождением решен. Но ведь библиотеки бывают не только локальными, некоторые из них используются совместно множеством приложений, вот как раз для этой ситуации всё и затевалось!! Я думаю, вполне уместно было бы привести аналогию с системной переменной пути (%PATH%). Как Вы помните, файлы, которые располагаются в директориях, указанных в переменной %PATH%, можно запускать из командной строки без указания полного пути. В случае же отсутствия директорий в переменной %PATH%, указанные файлы невозможно будет запустить из произвольного местоположения в операционной системе, командный интерпретатор их попросту «не найдет». По аналогии и библиотеки, которые содержат функции, широко используемые различными программами, должны быть «объявлены» в системе, иначе программы не смогут их «найти». Можно утверждать, что при вызове функции из образа исполняемого файла, загрузчик Windows (менеджер, отвечающий за выделение памяти, подключение различных функций из образов памяти и прч.) должен знать откуда можно подгрузить библиотеку, содержащую требуемую функцию.
Если опираться на историю развития технологии распределенного кода, то можно сделать вывод, что regsvr32 обеспечивает регистрацию как классических библиотек DLL, так и продвинутых их собратьев, содержащих COM-объекты, поскольку со сборками .NET утилита уже не работает. Что же касается вопроса регистрации в системе применительно к библиотеке DLL на низком уровне, то она представляет собой алгоритм действий по модификации различных разделов реестра и каталогов файловой системы, результатом которого является «видимость» библиотеки приложениями. Если библиотека «сторонняя» (не системная), то регистрация библиотеки должна осуществляться на этапе инсталляции приложения, в состав которого она входит и для обслуживания функций которого она предназначается. В большинстве случаев сам процесс регистрации библиотеки выполняется при помощью вызова внешних специализированных системных утилит, либо определенной последовательности специализированных функций Windows API.

Зачастую нет необходимости самостоятельно (вручную) регистрировать DLL, практически всегда это выполняется автоматически при инсталляции компонентов системы/программы. Необходимость в ручной регистрации возникает, как правило, в случае каких-либо ошибок в системе: проблем инсталляции/деинсталляции программ, сбоях, либо в случае самостоятельно разрабатываемых DLL, которые необходимо оттестировать.

Можно рассмотреть простой пример, когда произвольно установленная в системе программа использует функцию из библиотеки, не «объявленной» в системе. В подобной ситуации загрузчик Windows на начальной стадии инициализации виртуального адресного пространства процесса выполняет импорт всех библиотек, требуемых загружаемой на выполнение программе. Если одна из библиотек, прописанных в таблице импорта исполняемого образа, отсутствует, то загрузчик выдает такое вот сообщение об ошибке:

regsvr32 запуск программы невозможен

Ошибка сообщает нам о том, что загрузчик образа cDSsvc.exe не смог найти библиотеку MFC71.DLL, необходимую ей для функционирования. Один из способов устранения данного класса ошибок состоит в повторной инсталляции программы, в ситуации, когда файл искомой библиотеки входит в состав какого-либо дистрибутива, поскольку библиотека инсталлируется автоматически скриптом инсталляции. Если библиотека входит в состав другого пакета, например Microsoft Visual C++ 2010 x64 Redistributable, то переустановить необходимо именно его. Если же описанными способами ошибку исправить все же не удается, тогда нам на помощь приходит утилита Regsvr32.

[упрощенное] описание процесса регистрации библиотеки

Утилита regsvr32 при помощи системной функции LoadLibrary загружает библиотеку и, в зависимости от того входных параметров [командной строки], выполняет:

  • ищет в библиотеке точку входа и вызывает функцию DllRegisterServer либо DllUnRegisterServer данной библиотеки и смотрит на возвращаемый результат.
  • ищет в библиотеке точку входа и вызывает функции DllInstall / DllUnInstall.

Все это говорит в пользу того, что существуют определенные требования к структуре DLL, которую вы хотите регистрировать с помощью regsvr32. Для того, чтобы управляющий элемент можно было зарегистрировать с помощью regsvr32, в DLL должны быть реализованы функции DllRegisterServer, DllUnregisterServer, а при необходимости выполнения специфичных действий еще и функции DllInstall, DllUnInstall. Функции DllRegisterServer / DllUnregisterServer содержат логику, которая фактически и выполняет регистрацию библиотеки в системе, добавляя записи в реестр, требующиеся для управляющего элемента. Функции DllInstall / DllUnInstall служат для выполнения дополнительных действий, которые планирует произвести автор DLL. Поэтому помните, что:

Далеко не все DLL могут быть зарегистрированы при помощи regsvr32!

Давайте посмотрим, что же происходит в случае, когда, к примеру, не определена функция DllRegisterServer:

regsvr32 точка входа DllRegisterServer не найдена

В этом случае мы видим на экране ошибку: «Модуль ????????.??? загружен, но точка входа DllRegisterServer не найдена». Но, давайте как перейдем, непосредственно, к самому процессу регистрации.

Новый метод

Как мы уже говорили, для регистрации библиотеки используется функция DllRegisterServer(). Функция проверяет 128-битный глобальный идентификатор (GUID, Global Unique ID) всех объектов COM/ActiveX, обнаруженных в библиотеке и последовательно прописывает информацию о них в реестр. Тут мы видим что происходит как бы не регистрация библиотеки, а регистрация объектов в библиотеках. Как мы уже говорили выше, регистрация объектов необходима, поскольку программы работают не с самими файлами DLL/OCX/ACX, а с объектами, представляющими определенный набор интерфейсов. Как мы уже упоминали, для целей регистрации DLL используется раздел реестра HKEY_CLASSES_ROOT, который представляет собой комбинацию разделов:

  • ветвь HKLMSOFTWAREClassesCLSID при регистрации COM-объектов библиотек для всех пользователей системы;
  • ветвь HKCUSOFTWAREClassesCLSID при регистрации COM-объектов библиотек только лишь для текущего пользователя;
  • ветвь HKLMSOFTWAREWow6432NodeClassesCLSID для регистрации 32-битных DLL в 64-битных ОС Windows;
  • Таким образом можно сделать вывод, что процесс регистрации библиотеки заключается в информировании операционной системы о том, что реализация интерфейсов, предоставляемых объектом с определенным идентификатором, располагается в соответствующем файле.

    Если вам необходимо поменять расположение библиотеки DLL в системе (например, поменять директорию размещения), то потребуется её перерегистрация.

    Старый метод

    В дополнение к современному методу работы с COM-объектами, в реестре присутствует еще и ветка HKLMSOFTWAREMicrosoftWindowsCurrentVersionSharedDLLs. Могу предположить, что она относится к устаревшему методу регистрации общих библиотек DLL, базирующемуся на подсчете количества ссылок на библиотеку. Вероятно, она оставлена для совместимости и предназначена для регистрации библиотек, которые представляют собой устаревший вид библиотек, состоящих из набора функций. В этой ветке имеются параметры типа REG_DWORD, имена которых содержат полный путь к зарегистрированным в системе общим библиотекам (например: C:Windowssystem32VBAME.DLL). Значение параметра может варьироваться от 1 до 65535. Дело в том, что значение это — счетчик использования или, как еще называют, количество ссылок. Зачастую этот метод регистрации использовался не-MSI инсталляторами. Каждый раз, когда какой-либо подобный установщик самостоятельно регистрирует в системе библиотеку, которая до этого уже была зарегистрирована кем-либо еще (то есть присутствует в SharedDLLs), он увеличивает счетчик использования на 1, когда же (например, при удалении) библиотека разрегистрируется, то счетчик уменьшается на 1. Подобная логика была реализована в первых версиях Windows для борьбы с таким явлением как «Ад DLL»(DLL Hell). У параметров некоторых библиотек можно наблюдать достаточно большие значения (4096), полагаю, таким образом маркируются критичные для системы библиотеки, и счетчик искусственно увеличен с той целью, чтобы разнообразные пользовательские пакеты при своем удалении, случайно не уменьшили счетчик использования до 0 и не выключили DLL.

    32-битные и 64-битные версии regsvr32

    Начиная с Windows XP, в зависимости от разрядности ОС, утилита regsvr32.exe располагается либо только в директории %SystemRoot%System32 для 32-битных систем, либо в папках %SystemRoot%System32 и %SystemRoot%SysWOW64 для 64-битных (присутствуют две разные версии программы). Представляет собой утилиту командной строки, то есть, иными словами, работает с консолью и может использоваться в сценариях.

    В данный момент более активно начали использоваться 64-битные версии Windows. Если в 32-битных версиях Windows всё было достаточно прозрачно и присутствовало только одна версия программы, то в 64-битных версиях ОС имеются две версии утилиты regsvr32:

    • 64-разрядная версия утилиты — %SystemRoot%System32regsvr32.exe (используется по-умолчанию при запуске без конкретизации пути);
    • 32-разрядная версия утилиты — %systemRoot%SysWoW64regsvr32.exe

    Получается, в 64-битной системе разработчики сохранили прежнюю систему именования каталогов, однако поместили туда уже «родные» 64-битные приложения. Объясняется это обеспечением совместимости приложений и уменьшением временных затрат на трансляцию кода из 32- в 64-разрядную версию Windows. Таким образом, в 64-битной версии Windows могут работать как 32-битные, так и 64-битные версии программ, соответственно, и DLL могут использоваться и 32- и 64-разрядные.
    Когда вы запускаете regsvr32 в 64-битной версии ОС для регистрации DLL, вы по-умолчанию используете 64-битную версию утилиты.

    Для 64-битных ОС Windows существует золотое правило: директория System32 системы предназначается для родных 64-битных приложений, директория SysWOW64 для 32-битных. Немного не интуитивно, однако это сложившийся факт!! WOW64 (Windows on Windows64) — 32-битная подсистема, которая запускается в 64-битной среде.

    Поэтому, если вам требуется зарегистрировать 32-разрядную версию библиотеки DLL в 64-разрядной ОС, и у вас возникает ошибка, то можно поступить следующим образом:

    1. Открыть командную строку с правами администратора;
    2. Если требуемая для регистрации 32-разрядная библиотека DLL находится в директории %SystemRoot%System32, переместить ее в папку %SystemRoot%SysWoW64;
    3. Выполнить команду:
      %SystemRoot%SysWoW64regsvr32 <полный путь к библиотеке DLL>

      то есть, к примеру: %SystemRoot%SysWoW64regsvr32 %SystemRoot%SysWOW64test.dll

    Если же перед вами стоит задача зарегистрировать 64-битную DLL в 64-разрядной ОС:

    1. Открыть командную строку с правами администратора;
    2. Если требуемая для регистрации 64-разрядная библиотека DLL находится в директории %SystemRoot%SysWOW64, переместить ее в папку %SystemRoot%System32
    3. Выполнить команду:
      %SystemRoot%System32regsvr32 <полный путь к библиотеке DLL>

      то есть, например: %SystemRoot%System32regsvr32 %SystemRoot%System32test.dll

    Синтаксис regsvr32

    Как уже говорилось выше, regsvr32 — это утилита командной строки, поэтому в целях практического использования может запускаться из-под всем уже знакомой cmd, либо использоваться в сценариях.

    В большинстве случаев, для регистрации DLL требуются повышенные привилегии, то есть права локального администратора.

    Утилита regsvr32.exe имеет следующие параметры командной строки:

    Regsvr32 [/u] [/s] [/n] [/i[:cmdline]]

    Список ключей утилиты и описание их действия приведем в следующей таблице:

    Параметр Описание

    /u

    Отменяет регистрацию DLL. Отменить можно только регистрацию DLL, команда не применима к элементам управления и фильтрам.

    /i

    вызывает функцию DllInstall, передавая ей в качестве параметра необязательную строку команд cmdline; Вызов DllInstall приводит к вызову стандартных функций регистрации DllRegisterServer/DllUnRegisterServer, однако позволяет передать строку параметров, которые могут изменить поведение регистрации, например провести регистрацию DLL более одного раза. Ключ /i при использовании с ключом /u вызывает DllUnInstall.

    /n

    не вызывает DllRegisterServer, то есть вызывается только DllInstall; это может быть использовано с ключом /i для передачи дополнительных параметров для регистрации.

    /s

    «тихий» режим; сообщения не отображаются.

    В общем случае, регистрация библиотеки DLL при помощи regsvr32 может быть выполнена следующей командой:

    regsvr32 <имя_библиотеки>.dll

    Например:

    regsvr32 «C:WindowsSystem32schmmgmt.dll»

    Напоминаю, будьте внимательны с версиями утилиты regsvr32 под Windows различной разрядности. В некоторых случаях приходится уточнять путь к утилите при запуске.
    Более того, практически всегда, когда регистрируемый компонент лежит вне путей, включенных в переменную %PATH% (к примеру, если он не находится в %SystemRoot%System32), путь к компоненту приходится уточнять!
    Пример:

    %SystemRoot%System32Regsvr32 %SystemRoot%System32macromedFlashFlash10a.ocx

    *Составные пути к файлу должны заключаться в кавычки по правилам синтаксиса командной строки Windows.

    Поддержка торгового оборудования

    Сводная таблица известной информации о драйверах и устройствах:

    http://kb.etersoft.ru/Поддержка_торгового_оборудования_в_Wine

    Сканеры штрих-кодов

    Не существует единой системы, позволяющей настроить работу любого сканера штрих-кодов. Приходится перебирать разные драйверы для каждого сканера. Чаще всего подходят драйверы от АТОЛ.

    Ниже приведена настройка локальной работы сканера

    Примечание: Касается USB сканеров.

    USB сканеры можно программировать на эмуляцию разных портов:

    1)USB

    2)COM

    3)Keyboard

    Для этого надо считать «настроечные» штрих-коды которые находятся в инструкии по настройке (Configuration Guide)

    Для того чтобы посмотреть на какой порт подключился Сканер надо выполнить следующие команды:

    tail -n 40 /var/log/messages
    
    lsusb
    
    lshw

    Предварительная настройка

    Подключаем сканер к компьютеру, включаем питание и приступаем к настройке.

    Из под рута выполняем команды, после чего сканируем любой ШК сканером.

    При подключении к COM-порту

    # cat /dev/ttyS0

    либо при подключении к USB

    # cat /dev/ttyUSB0

    Если все хорошо, идем дальше. Если вывод кода на экран не произошел, проверяем соединение сканера с компьютером и повторяем процедуру.

    Замечение: выбор команды зависит от подключения к порту. В дальнейшем я буду рассматривать только COM-порт.

    Проверяем вывод ШК на экран под пользователем. Запускаем команду и сканируем любой ШК сканером:

    $ cat /dev/ttyS0

    Обычно в этом случаи появляется ошибка с доступом у устройству.

    Проверяем права на устройство:

    $ ls -l /dev/ttyS0
    
    crw-rw-rw- 1 root uucp 4, 64 Окт  7 16:46 /dev/ttyS0

    Где uucp — это группа, в которую надо добавить пользователя, работающего со сканером.

    В /etc/group в соответствующей строчке прописываем:

    uucp:x:14:uucp,test

    где test — это пользователь, который должен получить доступ к порту.

    Данное изменение вступит в силу после перелогинивания пользователя, поэтому сразу проверка ($ cat /dev/ttyS0 ) работать не будет.

    Теперь переходим в /.wine/dosdevices/ и находим файл com1. Смотрим на что он ссылается. Если ссылка не на /dev/ttyS0, то удаляем и делаем:

    ln -s /dev/ttyS0 ~/.wine/dosdevices/com1

    Настройка Сканера ШК в 1с

    Теперь рассмотрим 2 варианта настройки Сканера ШК.

    1 вариант будет с использованием стандартных драйверов 1с.

    2 вариант с использованием драйверов Атол.

    Если выбираем первый вариант, то настройка 1с сводится к минимуму. Открываем Сервис — Параметры — вкладка Сканер ШК. Включаем сканер, настраиваем в соответствии его возможностям и используем.

    2 вариант требует больше времени

    Подключение атол-драйвера устройства ввода к 1С v.7.7

    Приведенное ниже описание приведено с сайта АТОЛ: http://www.atol.ru/support/encyclopedy/1c/1s77-all/1c77-scan/

    Для подключения драйвера «АТОЛ: Драйвер устройств ввода» к 1С v.7.7 необходимо выполнить следующее:

    1. После установки «АТОЛ: Драйвер устройств ввода» (Устанавливаем Атол-драйвера для 1с. Ставим только те, что действительно нужны, а не все подряд)

    • Перепишите файл Scaner1C_7_7.ert (из директории C:Program FilesATOLDriversSamplesScaner) в папку базы 1C …ExtFormsEquip.
    • Перепишите файл Scaner1C.dll (из директории C:Program FilesATOLDriversBin) в папку базы 1С либо в каталог …bin платформы 1С и зарегистрируйте его в системном реестре (командой regsvr32 «c:путь к файлуScaner1C.dll»)

    В Linux для регистрации в системном реестре в папке 1с77BIN нужно выполнить команду:

    $ regsvr32 ./Scaner1C.dll
    DUV77_0.gif

    2. Запустив конфигурацию 1С, в меню «Сервис» выберите пункт «Настройка торгового оборудования» (откроется диалог «Торговое оборудование»).

    3. В этом диалоговом окне выберите закладку «Сканер штрих-кода».

    4. Поставьте флаг «Сканер штрих-кода включен».

    DUV77_2.gif

    5. Нажмите кнопку «Добавить новую модель» «…» .

    6. В поле «Внешняя компонента» выберите файл Scaner1C.dll.

    7. В поле «Программный идентификатор» пропишите Scaner45.

    8. Обработку обслуживания выберите «Внешняя», Scaner1C_7_7.ert

    DUV77_3.gif

    9. Нажмите кнопку «OК».

    10. В окне «Торговое оборудование» нажмите кнопку «Подключить», затем «ОК». Если в окне сообщений 1С появится сообщение «Сканер штрих кода: ошибка при подключении. Не удалось подсоединить устройство», то повторите процесс подключения заново, начиная с пункта «6». Признаком правильного подключения является сообщение «Сканер штрих-кода (модель: <модель сканера>) успешно подключен.

    11. В меню «Сервис» выберите пункт «Параметры» — откроется окно «Настройка параметров системы».

    DUV77_4.gif

    12. Выберите закладку «Драйвер устройств ввода», нажмите кнопку «Поиск оборудования…»

    13. Считайте штрих-код, на работу с которым настроен сканер (Рекомендуется EAN 8 или EAN 13). Вы увидите параметры подключения сканера. Вернувшись в окно «Драйвер устройств ввода» укажите порт, отображенный при поиске оборудования после чтения ШК «COM1…/ клавиатура», скорость передачи, модель сканера, укажите префикс и суффикс в соответствии с настройками, которые отобразились при поиске оборудования в поле «Данные» после штрихкода)

    DUV77_5.gif
    DUV77_6.gif

    14. Установите флаг «Устройство включено».

    Настройка сканера штрих-кодов с проброшенным по сети портом

    Проброс по сети из Linux->Windows больших проблем не создает. Для этого нужно использовать Remserial со стороны Linux, а на стороне Windows Virtual Serial Ports Emulator от Eterlogic (программа бесплатна для 32-битных систем) или TCP-COM (программа платная). Сканер подключен к Linux-системе.

    Интсрукция по настройке Virtual Serial Ports Emulator от Eterlogic.

    Намного труднее подключить удаленный порт к Linux-системе.

    Желательно использовать программу remserial (скачать можно здесь http://lpccomp.bc.ca/remserial/), т.к. другие программы не дали должного результата. В ALTLinux в Сизифе есть отдельная сборка программы. Для других систем необходимо собрать.

    На обоих компьютерах пользователей надо добавить в группы uupc и tty.

    На компьютере с подключенным сканером скрипт:

    # remserial -d -p 7200 -s "9600 raw" /dev/ttyS0

    На принимающей стороне запускаем из-под пользователя, который будет работать со сканером, запускаем команду:

    remserial -d -r 192.168.0.20 -p 7200 -l $HOME/.wine/dosdevices/com5 /dev/ptmx &

    где за место «192.168.0.20» подставляем ip адрес машины с которой идет передача.

    7200 — это порт, соответственно, если несколько устройств (Сканер штрих-кода, ККМ) то его меняем для каждого дополнительного устройства (7201,7202,7203………и т.д.)

    Для проверки работоспособности можно выполнить следующие действия:

    telnet 192.168.0.20 7200 или cat $HOME/.wine/dosdevices/com5

    При этом при сканировании должен выводится результат в консоль.

    Теперь можно приступать к пункту «Настройка Сканера ШК в 1с»

    Фискальные регистраторы

    Настройка Фискального регистратора с проброшенным по сети портом

    Делается аналогично сканеру, НО ВНИМАНИЕ с небольшим изменением

    !

    remserial -d -p7200 -s"115200 raw" /dev/ttyS0 &

    Альтернативный вариант подключения оборудования

    http://community.i-rs.ru/index.php?topic=11074.0

    http://renat-zaripov.blogspot.com/2010/12/remserial.html

    http://lpccomp.bc.ca/remserial/

    http://warlomak.blogspot.com/2008/10/com-winenxremserial.html

    Как зарегистрировать DLL в Windows 10 и Windows 11Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.

    В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.

    Регистрация библиотеки DLL в Windows 10, Windows 11 и предыдущих версий системы

    Дальнейшие шаги описаны в предположении, что DLL, которую нужно зарегистрировать, уже находится в нужном расположении: папке C:WindowsSystem32, C:WindowsSysWOW64 или, в некоторых случаях — отдельных папках программ, к которой относится соответствующая библиотека, например, для 1С — C:Program Files1cv8номер_версии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.

    Сам процесс регистрации в общем случае состоит из следующих шагов:

    1. Нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой Windows). Также можно нажать правой кнопкой мыши по кнопке «Пуск» в Windows 11 или Windows 10 и выбрать пункт контекстного меню «Выполнить».
    2. Введите команду regsvr32.exe путь_к_файлу (если путь к файлу содержит пробелы, возьмите весь путь в кавычки), например, для регистрации библиотеки DLL COMCNTR.DLL в 1С (для 64-бит) команда может иметь вид:
      regsvr32.exe "C:Program Files1cv88.3.19.1150bincomcntr.dll"

      Если DLL находится в System32, полный путь указывать не обязательно, достаточно простого имени файла, как на изображении ниже. Регистрация библиотеки DLL с помощью regsvr32

    3. Нажмите Ок или Enter.
    4. При успехе вы получите сообщение вида «Успешное выполнение DllRegisterServer в имя_файла.dll» или «Успешное выполнение DllRegisterServer и DllInstall в имя_файла.dll». Успешная регистрация библиотеки DLL

    Возможна и неудача — сообщение об ошибке «Модуль dll загружен, но точка входа DllRegisterServer не найдена. Проверьте, что файл является правильным файлом DLL или OCX и повторите попытку». Подробнее об ошибке — в следующем разделе статьи.

    Ошибка регистрации regsvr32 точка входа DllRegisterServer не найдена

    Дополнительно: для регистрации классов из библиотек DLL .NET Framework в COM с созданием необходимых записей в реестре используется regasm.exe из .NET SDK, причем базовая команда регистрации DLL выглядит тем же образом, что и в случае с regsvr32.exe. Подробнее по использованию regasm — https://docs.microsoft.com/ru-ru/dotnet/framework/tools/regasm-exe-assembly-registration-tool.

    Почему не удается зарегистрировать DLL

    Ошибка при регистрации с помощью regsvr32 вида «Точка входа DllRegisterServer не найдена» говорит о том, что эта библиотека DLL не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:

    regsvr32 /i /n путь_к_файлу.dll

    но с большой вероятностью и это не поможет.

    У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.

    Видео

    Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.

    1. Доброго времени суток!
      Подключаю сканер к самописной конфе, соответственно нужно подключить Scaner1C.Dll через функцию глЗагрузитьВнешнююКомпоненту(«Scaner1C.dll»). Невозможно ее подтянуть из за того что Scaner1C.Dll не зарегистрирована в системе. Ладно, набрал в команде «выполнить» Regsvr32 C:Путь_к_файлуScaner1C.Dll. Но система никак не хочет ее зарегить, «НЕ удалось загрузить модуль «Scaner1C.Dll».
      Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами.
      Не найден указанный модуль.»
      . не знаю в чем дело, я эту DLL и в System32 закидывал все равно не катит. Никто не сталкивался с этим???

    2. неужели никто не может помочь?


    3. Наташа

      Offline

      Наташа
      Опытный в 1С

      Регистрация:
      14 авг 2010
      Сообщения:
      1.442
      Симпатии:
      2
      Баллы:
      29

      Регистрация компонент производится с правами админа. Вы под кем делаете? :)

    4. Ну это понятно что с правами админа

    5. Может сама DLL «битая»? Попробуйте взять другую


    6. Stok

      Offline

      Stok

      Регистрация:
      12 май 2010
      Сообщения:
      35
      Симпатии:
      0
      Баллы:
      1

      Danik95
      Вы хотя бы написали бы какая ОС, скольки битная, версия dll и т.п.


    7. Diego

      Offline

      Diego
      Любитель 1С
      Команда форума

      Регистрация:
      3 апр 2009
      Сообщения:
      966
      Симпатии:
      3
      Баллы:
      29

      А путь к файлу действительно правильно прописан?
      Чтобы быть уверенным, попробуйте из какого-нибудь файлового менеджера прямо в папке с этой ДЛЛкой
      выполнить Regsvr32 Scaner1C.Dll


    8. swap

      Offline

      swap

      Регистрация:
      25 ноя 2010
      Сообщения:
      1
      Симпатии:
      0
      Баллы:
      1

      И у меня та же проблема (не хочет загружать библиотеку и регистрировать её). Виндовс XP 32бит. Версию библиотеки не знаю (посмотреть сейчас не могу), но на других компьютерах все работает. Попробую драйвера от атола поставить «АТОЛ: Драйвер устройств ввода» к 1С v.7.7 может заработает?

    9. От атола дрова как правило платные….


    10. pilford

      Offline

      pilford

      Регистрация:
      5 сен 2011
      Сообщения:
      3
      Симпатии:
      0
      Баллы:
      1

      У меня такая же проблема.
      подключил Metrologic Сканер штрих кода MS-6520 СОМ через USB, win7, 1c77 и dll(ка) не ставится.
      Все какие возможно версии перепробывал.
      Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами.
      :angry:
      Что делать, все перечитал что возможно и нет.
      Помогите, чем смогите!
      Спасибо.

    11. в BAT файл (создаем блокнотом) прописываем
      regsvr32 ИмяБиблы
      Сохраняем в каталог с библиотекой
      В проводнике от имени администратора запускаем.
      Так делали?


    12. KingX

      Offline

      KingX
      Опытный в 1С

      Регистрация:
      19 дек 2011
      Сообщения:
      144
      Симпатии:
      0
      Баллы:
      26

      У меня такая же фигня была… Но сделал так… Пуск+R далее Обзор и указываю файл… Появляется типо того «C:Путь_к_файлуScaner1C.Dll». Потом впереди пишу Regsvr32. Получается так: Regsvr32 «C:Путь_к_файлуScaner1C.Dll» И все регистрируется!

    13. Если текущий каталог совпадает с месторасположением файла — путь перед библой указывать не обязательно.


    14. pilford

      Offline

      pilford

      Регистрация:
      5 сен 2011
      Сообщения:
      3
      Симпатии:
      0
      Баллы:
      1

      Ничего не поменялось :angry:

    15. тогда как вариант библа «битая». попробуйте скачать заново


    16. TimonChD

      Offline

      TimonChD

      Регистрация:
      17 июл 2007
      Сообщения:
      18
      Симпатии:
      0
      Баллы:
      1

      Смотреть нужно, что за версия Scaner1C.Dll и какие библиотеки нужны, если не стандартная. Сколько говорю Scaner1C.Dll Scaner1C.Dllу рознь. Накачают откуда попало…


    17. KingX

      Offline

      KingX
      Опытный в 1С

      Регистрация:
      19 дек 2011
      Сообщения:
      144
      Симпатии:
      0
      Баллы:
      26

      Давай почту, я те вышлю библию…


    18. svv1979

      Offline

      svv1979

      Регистрация:
      11 фев 2015
      Сообщения:
      25
      Симпатии:
      0
      Баллы:
      1

    Похожие темы

    1. Юра
      Ответов:
      6
      Просмотров:
      958


    1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

    Порой при попытке запустить игру или приложение на компьютере выдается ошибка, что данный DLL-файл не найден. Факт в том, что этот файл может находиться у вас на компьютере, но он попросту не зарегистрирован. В этой статье мы как раз поговорим о том, как зарегистрировать DLL в Windows 7. Сделаем акцент именно на седьмой версии Windows, но, вполне возможно, что DLL зарегистрируется и на других версиях. Итак, приступим.

    Первый способ регистрации DLL

    Перед началом регистрации стоит сделать ремарку и сказать, что способов всего три, но каждый из них практически аналогичен остальным, так что советуем дочитать статью до конца, после чего сделать выбор, каким способом пользоваться. Ну а теперь перейдем непосредственно к тому, как зарегистрировать DLL.

    Изначально стоит сказать, что все манипуляции с регистрацией DLL-файла стоит проводить лишь в том случае, когда этот самый файл находится там, где он должен быть. Чаще всего это папка system32. В примере именно эту папку мы и будем представлять.

    Сейчас поговорим о самом распространенном способе, как можно зарегистрировать DLL, по крайней мере, он в интернете встречается чаще всего. Он довольно прост, так что у пользователя не должен вызывать проблем.

    зарегистрировать dll

    1. Вам нужно попасть в окно «Выполнить». Его можно открыть несколькими путями. В меню «Пуск» пройти по пути «Все программы → Стандартные» и там уже выбрать «Выполнить». Можно также в том же меню «Пуск» совершить поиск с названием утилиты. Но самый простой способ — это нажать клавиши Win+R.
    2. Когда окно открыто, в поле для ввода нужно прописать команду «regsvr32.exe», после этого указать путь к файлу, который нужно зарегистрировать.
    3. Осталось нажать лишь кнопку «ОК».

    Просим обратить внимание на то, что путь к файлу должен указываться полностью. Начиная с диска C. Например: regsvr32.exe c: windows /system32/openal32.dll.

    В этом случае после нажатия кнопки «ОК» есть два варианта развития событий. Первый подразумевает успех, в этом случае вам будет показано соответствующее сообщение. Или неудача, вылетит соответствующее окно.

    Это был первый способ, как зарегистрировать DLL, но напоминаем, что их всего три, поэтому двигаемся дальше.

    Второй способ регистрации DLL

    Второй способ практически ничем не отличается, лишь местом действий. Вам нужно попасть в утилиту «Командная строка», сделать это можно также несколькими способами: или в меню «Пуск» в папке стандартные открыть одноименную программу, или вызвав окно «Выполнить», ввести команду «cmd». Решать только вам.

    как зарегистрировать dll в windows 7

    Теперь перед вами открыта командная строка, в ней нужно ввести абсолютно такие же данные, которые вводились в первом способе. То есть изначально указать программу, которая будет работать с dll (regsvr32.exe), а затем путь к файлу.

    ошибка dll

    Как видим, второй способ, как зарегистрировать DLL, практически ничем не отличается от первого, о чем и говорилось в начале статьи. Но вот третий имеет более заметные отличия, поэтому перейдем к нему.

    Третий способ регистрации DLL

    Этот способ, скорее всего, окажется более простым для рядового пользователя, поэтому начнем его рассматривать.

    Вам необходимо всего-навсего открыть DLL-файл с помощью regsvr32.exe. Вот как это сделать:

    1. На нужном DLL-файле нажмите ПКМ.
    2. В меню выберите «Открыть с помощью…».
    3. В окошке найдите и нажмите кнопку «Обзор».
    4. Проложите путь к файлу regsvr32.exe, он находится в папке System32, которая находится в папке Windows на диске C.
    5. Нажмите «Открыть».

    Вот и все, теперь вы знаете аж три способа, что нужно делать, когда появляется ошибка DLL.

    Понравилась статья? Поделить с друзьями:

    Вот еще несколько интересных статей:

  • Как зарегистрировать dll в windows 10 64 bit через командную строку
  • Как зарегистрировать dll в windows 10 64 bit через cmd
  • Как запустить файл реестра windows 10
  • Как зарегистрировать comcntr dll в windows 10
  • Как зарегистрировать barcode ocx в windows 10

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии