Не удается открыть проект в Visual Basic 6 - PullRequest
0 голосов
/ 27 июня 2019

Один из моих хорошо скомпилированных друзей дал мне тестовую программу, и задача состояла в том, чтобы отредактировать исходный код.Я узнал, что программа была написана на VB6, и я получил VB-декомпилятор.Я получил много форм (файлы .frm) и проект .vbp.Теперь я скачал VB6 для Windows из неофициальных источников, и при импорте проекта у меня возникает ошибка нехватки памяти в каждой форме.Я игнорирую ошибку и, когда импорт завершен, выдается сообщение о файле журнала -

Line 77: Cannot load control txtServer.
Line 85: Cannot load control txtUID.
Line 93: Cannot load control txtPwd.
Line 101: Cannot load control txtFTPPath.
Line 109: Cannot load control txtFTPSharedFolder.
Line 117: Cannot load control txtPort.
Line 222: Cannot load control txtType.
Line 266: Cannot load control txtPath.
Line 274: Cannot load control txtSharedFolder.
Line 310: Cannot load control cmdSave.

Я пытался обновить мой vb6 до vb.net через Visual Basic 2008 Express, но я получаю ошибки

upgrade failed: application has caused an exception

Что мне теперь делать?Изменить: я прочитал файл FRM.Я открыл файл frm и увидел, что в нем есть такие строки, как -

begin xyz.txtServer

Теперь xyz - это имя приложения, а txtServer - ошибка в файле журнала, как указано в вопросе.

Редактировать2: у меня есть новая разработка.Я открыл файл frm и узнал, что строка, имеющая - begin VB. (Некоторые команды), работает отлично, но строка - begin xyz2000 (некоторые команды) выдает ошибку.Понятно, что это ошибка dll.Фирма не вызывает xyz2000.dll.Я не получил xyz2000.dll в программном обеспечении, данное мне.Так откуда взялся этот xyz2000?

Ответы [ 2 ]

2 голосов
/ 27 июня 2019

Ошибки «не удается загрузить», скорее всего, связаны с тем, что ссылки DLL (или файлы OCX, тип DLL) отсутствуют или, по крайней мере, не зарегистрированы на компьютере разработчика. VB6 не является статически связанным языком или даже действительно динамически связанным, но вместо этого все ссылки на DLL обнаруживаются во время выполнения на основе COM - по сути это означает, что библиотеки DLL обычно должны быть централизованно зарегистрированы в Windows.

Для дальнейшей диагностики конкретных проблем:

  • Посмотрите файлы FRM в текстовом редакторе. Файл, в котором определен элемент управления "txtServer" и какой это тип. Имя типа может указывать, какая DLL требуется для предоставления элемента управления.

  • Посмотрите верхнюю часть файлов FRM, вы должны увидеть строки со списком Object = "..." ссылок. Они также указывают необходимые файлы DLL / OCX.

  • Загляните в файл .VBP, вы увидите похожие Object и Reference строки.

(Если вы добавите несколько примеров этих вопросов в вопрос, люди могут предоставить дополнительную помощь.)

0 голосов
/ 20 июля 2019

Вы должны обязательно внимательно изучить файл .vbp.GUID операторов Reference и Object должен присутствовать в ключе реестра HKEY_CLASSES_ROOT\TypeLib.

Это компоненты, которые вы регистрируете с regsvr32.Для dll's, который вы не могли зарегистрировать, они должны быть скопированы в место, доступное для 32-битных приложений.Лучшее расположение:

В 64-разрядных Windows

%SystemRoot%\SysWOW64

В 32-разрядных Windows

%SystemRoot%\System32

...