Не работает регистрация dll на других машинах

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Не работает регистрация dll на других машинах

Сообщение kibernetics » 24.02.2023 (Пт) 12:40

Привет, всем!

такое дело, я забабахал полезную приблуду, в виде Add-In для Excel. И при попытке перенести своё чудо-творчество на другую машину, извечно выкидывается сообщение:
regsvr32.jpg
regsvr32.jpg (29.81 Кб) Просмотров: 565


На своей машине таких ошибок при регистрации не возникает. Машина Win 10 64bit.

пробовал на двух других компах с Windows 10 64b и Windows 11 64b - беда.

Прям незнаю что и делать. Может надо какие-то ocx, tlb ещё приаттачивать к этой длл-ке?

Или, я не правильно её компилю может?!
vbeextender.PNG
vbeextender.PNG (52.73 Кб) Просмотров: 565


У себя на машине VB6 установлен, на двух других, там ничего такого нету, только винда и офисный пакет.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Не работает регистрация dll на других машинах

Сообщение ALX_2002 » 24.02.2023 (Пт) 13:23

Привет. Так пробовал ?
Код: Выделить всё
%windir%\SysWOW64\regsvr32 VBEExtender.dll

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Не работает регистрация dll на других машинах

Сообщение kibernetics » 24.02.2023 (Пт) 19:18

ALX_2002 писал(а):Привет. Так пробовал ?
Код: Выделить всё
%windir%\SysWOW64\regsvr32 VBEExtender.dll


да, тоже попробовал - тщетно. та же ошибка.
ещё, странное поведение - закинул файл в папку /windows/system32 и пробую оттуда запустить, то этот файл не виден почему-то, хотя в папке он есть точно, и путь указан верно.
regsvr32_nf.jpg
regsvr32_nf.jpg (27.63 Кб) Просмотров: 554

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Не работает регистрация dll на других машинах

Сообщение Хакер » 24.02.2023 (Пт) 19:30

Идея регистрации ActiveX-библиотек состоит в том, что не важно, где именно лежит файл. Смысл регистрации состоит в том, чтобы ложить файлы куда угодно, а не в определённое место на диске, а взамен этого в определённом месте в реестре содержится информация, где найти нужные файлы.

kibernetics писал(а):ещё, странное поведение - закинул файл в папку /windows/system32 и пробую оттуда запустить, то этот файл не виден почему-то, хотя в папке он есть точно, и путь указан верно.

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

Что касается первой ошибки: самый верный и быстрый путь это взять отладчик и посмотреть, откуда именно происходит ошибка. Ну или в качестве программы минимум: взять RegMon/ProcMon и посмотреть, какие именно попытки доступа к реестру осуществляются и какие из них заканчиваются сбоем (скорее всего именно доступ к реестру вызывает эту ошибку, потому что больше там ничего в DllRegisterServer и нет).

Имя файла DLL не одобряю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Не работает регистрация dll на других машинах

Сообщение kibernetics » 24.02.2023 (Пт) 20:40

Вот репо с исходником,
https://github.com/sergeos/VBEEXtender
Хакер, загляни, плиз.

Ещё, ALX_2002 говорил, что в vpb есть прмое связывание на вот эти библиотеки:
Код: Выделить всё
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation
Reference=*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#..\..\..\..\Program Files (x86)\Common Files\Microsoft Shared\VBA\MSO97RT.DLL#Microsoft Office 8.0 Object Library
Reference=*\G{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}#1.0#0#..\..\..\..\Program Files (x86)\Common Files\Designer\MSADDNDR.dll#Add-In Designer/Instance Control Library
Reference=*\G{0002E157-0000-0000-C000-000000000046}#5.3#0#..\..\..\..\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB#Microsoft Visual Basic for Applications Extensibility 5.3
Reference=*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#..\..\..\..\WINDOWS\SysWOW64\FM20.DLL#Microsoft Forms 2.0 Object Library


если от stdole2 ещё можно избавиться в проекте, (без него работает).
то, отключив референсы другие, ругается при старте.

Значит ли это, что надо и эти референсы регистрировать в системе прежде, чем я свою длл зарегать хочу?
Но блин, Microsoft Office 8.0 Object Library это ж вообще было когда, до Рождения Христова...
или, Microsoft Forms 2.0 Object Library я вообще не использую в библиотеке, откуда оно взялось.

[Хакер] :: Не надо использовать тег ICODE для многострочных блоков кода.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Не работает регистрация dll на других машинах

Сообщение The trick » 24.02.2023 (Пт) 22:23

В System32 вообще не нужно закидывать 32 битные файлы на 64 битных системах. Закидывать нужно в SysWOW64 раз уж хочешь в системной папке хранить. Регистрировать нужно от имени администратора.
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Не работает регистрация dll на других машинах

Сообщение Хакер » 24.02.2023 (Пт) 22:28

kibernetics писал(а):Хакер, загляни, плиз.

А что глядеть? У меня Windows XP рабочая система, максимум Win7 на сторонних компьютерах есть.
Глядеть надо на проблемных системах в отладчике типа OllyDbg.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Не работает регистрация dll на других машинах

Сообщение kibernetics » 25.02.2023 (Сб) 11:20

The trick писал(а):В System32 вообще не нужно закидывать 32 битные файлы на 64 битных системах. Закидывать нужно в SysWOW64 раз уж хочешь в системной папке хранить. Регистрировать нужно от имени администратора.

понял. этот момент учту.

Хакер писал(а):А что глядеть? У меня Windows XP рабочая система, максимум Win7 на сторонних компьютерах есть.

да хоть на ХР-шке, без разницы.

Последовательность такая:
1) запускаем проект в VB6
2) теперь идём в VBA экселя
3) там меню AddIn, выбираем наш аддон и ставим галочку Loaded.
addin.JPG
addin.JPG (34.88 Кб) Просмотров: 524



всё. Теперь, при написании кода в vba, например, можно нажать комбинацию:
Shift+Alt+Arrow Down и та строка или блок текста будет скопипастен.

Ну вот вопрос состоит, запустится ли у тебя аддон, хотя бы на ХР.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 38

    TopList