无法在 Visual Basic 6 中打开项目

Can't open project in Visual Basic 6

我的一个朋友给了我一个编译好的测试程序,挑战是编辑源代码。我知道该程序是用 VB6 编写的,并且我得到了 vb-反编译器。我有很多表格(.frm 文件)和一个 project.vbp 。现在,我从非官方来源下载了 VB6 for 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.

我试图通过 visual basic 2008 express 将 vb6 更新为 vb.net,但出现错误

upgrade failed: application has caused an exception

我现在该怎么办? 编辑 : 我读了 frm 文件。我打开 frm 文件,看到它有类似 -

的行
begin xyz.txtServer

现在 xyz 是应用程序的名称,txtServer 是问题中所述的日志文件中的错误。

编辑 2: 我有了新的发展。我打开 frm 文件并知道具有 - begin VB.(some Command) 的行运行完美但行 - begin xyz2000(some command) 给出了错误。很明显是dll错误。 frm 不调用任何 xyz2000.dll 。我在给我的软件中没有得到任何xyz2000.dll。那么这个xyz2000是从哪里来的呢?

"cannot load" 错误很可能是由于 DLL(或 OCX 文件,一种 DLL)引用丢失或至少未在您的开发计算机上注册。 VB6 不是静态链接语言,甚至不是真正的动态链接,而是 DLL 引用都是基于 COM 在运行时发现的——本质上意味着 DLL 通常必须集中注册在 Windows.

进一步诊断具体问题:

  • 在文本编辑器中查看 FRM 文件。定义控件 "txtServer" 的文件及其类型。类型名称可能指示需要哪个 DLL 来提供控件。

  • 查看 FRM 文件的顶部,您应该会看到列出 Object = "..." 引用的行。这些还指示所需的 DLL / OCX 文件。

  • 查看 .VBP 文件,您会看到类似的 ObjectReference 行。

(如果您将这些项目的一些示例添加到问题中,人们可能会提供更多帮助。)

您一定要仔细检查 .vbp 文件。 ReferenceObject 语句 GUID 必须出现在注册表的 HKEY_CLASSES_ROOT\TypeLib 项中。

这些是您使用 regsvr32 注册的组件。对于无法注册的 dll's,必须将它们复制到 32 位应用程序可以访问的位置。最佳位置是:

64 位Windows

%SystemRoot%\SysWOW64

32 位Windows

%SystemRoot%\System32