VB 6 и Windows 10 ?

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
bitcoin
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 10.01.2022 (Пн) 17:14

VB 6 и Windows 10 ?

Сообщение bitcoin » 10.01.2022 (Пн) 17:23

Всем добрый вечер. Такой вопрос - реально ли как-то заставить VB 6 работать на десятке? Или какие ОС используете вы?
Нашел на рутрекере бейсики, ни один не работает на вин10.

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

Re: VB 6 и Windows 10 ?

Сообщение Хакер » 11.01.2022 (Вт) 14:41

А что значит «не работает»?

Я ни разу не сидел под Windows 10, но как чтобы понять, что не так и какие меры предпринять, чтобы заставить VB6 работать под Windows 10, нужно знать, что именно происходит.

Вообще запускается?
Запускается и сбоит? С каким-то сообщением об ошибке? Молча, без всякого сообщения?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: VB 6 и Windows 10 ?

Сообщение Mikle » 11.01.2022 (Вт) 16:02

На 10-ке не пробовал, но думаю, что это та же проблема, что и на 7-8. Устанавливать VB6 нужно из-под админа, но не просто, при этом ещё сам файл Setup нужно запускать от имени администратора, делается через меню по ПКМ.

bitcoin
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 10.01.2022 (Пн) 17:14

Re: VB 6 и Windows 10 ?

Сообщение bitcoin » 11.01.2022 (Вт) 16:52

Хакер писал(а):А что значит «не работает»?
см. скриншот ниже.

А где взять официальную версию VB 6 ? Или есть может какие-то "сборки"? Я сам не пишу, но возникла нужда отредактировать один проект на бейсике.
Вложения
Безымянный.png
Безымянный.png (34.03 Кб) Просмотров: 1489

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

Re: VB 6 и Windows 10 ?

Сообщение Хакер » 11.01.2022 (Вт) 19:05

bitcoin писал(а):см. скриншот ниже.

А как устанавливалась VB6? Такое впечатление, что просто скопировали файлы и ничего не устанавливали.

Конкретно данная ошибка при запуске вызывается вот чем:
На определённом этапе процесса запуска VB6 происходит проверка того, зарегистрирован ли ряд библиотек типов (type library) в реестре. Одна из таких библиотек — библиотека типов внутри DAO350.DLL. Сначала вызывается QueryPathOfRegTypeLib(), куда передаётся LIBID библиотеки типов, а в ответ возвращается имя файла, в котором проживает зарегистрированная в реестре библиотека типов. Если библиотека с нужным LIBID-ом зарегистрирована в реестре, проверяется, что имя файла, которое зарегистрировано в реестре, совпадает с «DAO350.DLL», а вторым шагом проверяется, что к файлу есть доступ.

Если же библиотека типов с нужным LIBID-ом ({00025E01-0000-0000-C000-000000000046}) не зарегистрирована в реестре, совершается несколько попыток найти DLL-файло с этой библиотекой типа и зарегистрировать его.

Попытки предпринимаются в следующем порядке:
1) Попытка найти и зарегистрировать DAO350.DLL, лежащей в том же каталоге, что и исполняемый файл VB6.EXE
2) Попытка найти и зарегистрировать DAO350.DLL, лежащей в системном каталоге (тот, который возвращает функция GetSystemDirectory() — по умолчанию это «System32» в %windir%)
3) Попытка найти и зарегистрировать DAO350.DLL, лежащей в Windows-каталоге (тот, который возвращает функция GetWindowsDirectory() — по умолчанию это «C:\WINDOWS»).

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

Если ни один из описанных путей выполнения не принёс успеха, как раз и будет показано то сообщение, что мы видим на скриншоте.


То есть, что это означает:
  • Файл DAO350.DLL, точнее содержащаяся в нём библиотека типов не зарегистрирована в реестре (либо зарегистрирована, но у неё неправильный LIBID в силу каких-то причин).
  • VB6 не удалось найти файл ни в одном из трёх мест, где он пытается его найти (а по умолчанию, при установке VB6 в составе Visual Studio 6 его ни в одном из этих мест и не должно быть — он кладётся в %programfiles%\Common Files).
  • А если и удалось найти, то оказалось, что у процесса нет доступа к файлу.
  • А если доступ и есть, то попытка загрузить TLB-ку не удалась (например, файл повреждён).
  • А если и удалось прочитать, то не удалось зарегистрировать (например потому, что у процесса VB6.EXE нет прав на доступ к реестру на запись (доступ к разделу HKEY_CLASSES_ROOT/TypeLib.

Что-то из этого.

Windows 10 тут, собственно, не причём, любой из этих факторов, ведущи к ошиьке, мог и на Windows 2000 возникнуть.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: VB 6 и Windows 10 ?

Сообщение Хакер » 11.01.2022 (Вт) 19:11

Соответственно, первый шаг к исправлению проблемы:
С помощью редактора реестра найти раздел HKEY_CLASSES_ROOT\TypeLib\{00025E01-0000-0000-C000-000000000046} и, если такой есть, посмотреть содержимое.

Если его нет, значит библиотека типов для DAO 3.50 на зарегистрирована ни в каком виде. Если раздел в реестре есть, посмотреть, какие там подключи/подразделы.

У меня, например, зарегистрированы две TLB-шки для DAO 3.51 и DAO 3.60:
dao_tlb_registration.png
dao_tlb_registration.png (16.05 Кб) Просмотров: 1482

(У большинства людей вместо «c:\os\common» будет «C:\Program Files\Common Files»)

Для работоспособности VB6 требуется наличие первого из двух. Если ключ есть, нужно вторым шагом посмотреть, существует ли указанный там файл на самом деле.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

bitcoin
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 10.01.2022 (Пн) 17:14

Re: VB 6 и Windows 10 ?

Сообщение bitcoin » 11.01.2022 (Вт) 23:50

Хакер писал(а):А как устанавливалась VB6? Такое впечатление, что просто скопировали файлы и ничего не устанавливали.

Это какая-то портабл сборка с рутрекера.
Спасибо за матчасть, попробую установить с 0, будет ли ошибка.
Хакер писал(а):VB6 не удалось найти файл ни в одном из трёх мест, где он пытается его найти (а по умолчанию, при установке VB6 в составе Visual Studio 6 его ни в одном из этих мест и не должно быть — он кладётся в %programfiles%\Common Files).
может бейсик проверяет PROGRAM FILES, а при установке оно идет вроде в program files x86? Вообще, работало у кого-то на 64 битной ОС? В порядке интереса.

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

Re: VB 6 и Windows 10 ?

Сообщение kibernetics » 12.01.2022 (Ср) 6:54

На 10-ке всё работает уже сколько лет.
Проблема с DAO350.DLL при первой установке общеизвестная.
Я уже точно не помню что именно надо сделать, но там что-то связанное с редактированием какого-то файла в дистрибутиве.
Поищи в инете, есть описание что именно надо править.

А так никаких проблем с VB6 на 10-ке, точно нету.


П.С. вот, кстати, первый же поиск выдал:
На Visual Basic 6.0 CD (или каков бы ни был ваш источник установки) найдите файл Dao350.dll, а затем скопируйте его в каталог C:\Program Files\Microsoft Visual Studio\VB98.
После применения этого исправления. Visual Basic 6 теперь может успешно работать на вашем компьютере.
NOTE: файл Dao350.dll находится в папке \os\system на Visual Basic 6.0 CD.


Но, вообще, лет 10 назад, я таскал с собой портейбл версию на флешке, и она везде у меня работала. :D

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

Re: VB 6 и Windows 10 ?

Сообщение Хакер » 12.01.2022 (Ср) 7:43

bitcoin писал(а):может бейсик проверяет PROGRAM FILES, а при установке оно идет вроде в program files x86? Вообще, работало у кого-то на 64 битной ОС? В порядке интереса.

Он не проверяет Program Files напрямую, он проверяет то, что я написал, в том порядке, в каком я написал. Program Files проверяется косвенно, если именно с таким путём библиотека зарегистрирована в реестре — напрямую вшитого куда бы то ни було пути «C:\Program Files» нигде нет.

У меня вообще система твикнута так, что у меня вместо c:\windows — c:\os\xp, вместо c:\Documents and Settings — c:\users, а вместо c:\Program Files — c:\soft. И никаких проблем.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: VB 6 и Windows 10 ?

Сообщение Хакер » 12.01.2022 (Ср) 8:26

kibernetics писал(а):На Visual Basic 6.0 CD (или каков бы ни был ваш источник установки) найдите файл Dao350.dll, а затем скопируйте его в каталог C:\Program Files\Microsoft Visual Studio\VB98.
После применения этого исправления. Visual Basic 6 теперь может успешно работать на вашем компьютере.


Можно и в System32 и в %windir%. Только вот запускать после этого VB6 как минимум первый раз нужно будет с правами, позволяющими регистрацию TLB-шек в реестре, то есть с правами администратора (если в Win10 не придумали какой-то ещё более строгой градации прав).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: VB 6 и Windows 10 ?

Сообщение Diamock » 12.01.2022 (Ср) 16:20

Во, как!.. Возьму на вооружение...
In der Beschrankung zeigt sich erst der Meister
Графоманю...


Вернуться в Народный треп

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList