为什么赢了';我的VB6.0应用程序不能编译吗?

为什么赢了';我的VB6.0应用程序不能编译吗?,vb6,Vb6,我的任务是为一个10年历史的VB6.0应用程序添加一个功能。起初,我在尝试创建exe时遇到以下错误: “找不到项目或库” 然后将其列为缺少:Crystal Reports 8.5标准向导库 所以我找到了那个dll,把它放在system32中,然后在引用弹出窗口中,把它映射到dll。但是,我仍然收到相同的错误消息,它指向相同的dll,尽管“MISSING”已被删除。注册表中可能有两个条目导致此问题,其中一个可能位于已删除的目录中。我建议您使用类似的方法清理注册表,然后再次尝试注册。VB6有时会保留

我的任务是为一个10年历史的VB6.0应用程序添加一个功能。起初,我在尝试创建exe时遇到以下错误:

“找不到项目或库”

然后将其列为缺少:Crystal Reports 8.5标准向导库


所以我找到了那个dll,把它放在system32中,然后在引用弹出窗口中,把它映射到dll。但是,我仍然收到相同的错误消息,它指向相同的dll,尽管“MISSING”已被删除。

注册表中可能有两个条目导致此问题,其中一个可能位于已删除的目录中。我建议您使用类似的方法清理注册表,然后再次尝试注册。VB6有时会保留坏的注册表键


您还可以使用Dependency Walker之类的工具检查exe/DLL,以查看是否缺少报表工具中缺少的辅助组件:

注册表中可能有两个条目导致此问题,其中一个条目可能位于已删除的目录中。我建议您使用类似的方法清理注册表,然后再次尝试注册。VB6有时会保留坏的注册表键


您还可以使用Dependency Walker之类的工具检查exe/DLL,以查看是否缺少报表工具中缺少的辅助组件:

我也继承了使用CR 8.5的应用程序的维护。在InnoSetup安装程序中,指定了以下.dll。我想你需要它们!注意安装目录!有些转到Sytem 32({sys}),有些转到Windows\Crystal

;Crystal Report files
Source: CR\Crystl32.ocx; DestDir: {sys}; Flags: regserver sharedfile
Source: CR\mfcans32.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\crpe32.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\Crpaig80.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\Implode.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\msvcp60.dll; DestDir: {sys}; Flags: restartreplace sharedfile
Source: CR\Exlate32.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\p2bdao.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\p2ctdao.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\p2irdao.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\u2ddisk.dll; DestDir: {win}\Crystal
Source: CR\u2fhtml.dll; DestDir: {win}\Crystal
Source: CR\u2fsepv.dll; DestDir: {win}\Crystal
Source: CR\u2ftext.dll; DestDir: {win}\Crystal
Source: CR\u2fwordw.dll; DestDir: {win}\Crystal
Source: CR\u2fxls.dll; DestDir: {win}\Crystal
Source: CR\u2lsamp1.dll; DestDir: {win}\Crystal
;end Crystal Report files

我继承了一个使用CR8.5的应用程序的维护。在InnoSetup安装程序中,指定了以下.dll。我想你需要它们!注意安装目录!有些转到Sytem 32({sys}),有些转到Windows\Crystal

;Crystal Report files
Source: CR\Crystl32.ocx; DestDir: {sys}; Flags: regserver sharedfile
Source: CR\mfcans32.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\crpe32.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\Crpaig80.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\Implode.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\msvcp60.dll; DestDir: {sys}; Flags: restartreplace sharedfile
Source: CR\Exlate32.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\p2bdao.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\p2ctdao.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\p2irdao.dll; DestDir: {sys}; Flags: sharedfile
Source: CR\u2ddisk.dll; DestDir: {win}\Crystal
Source: CR\u2fhtml.dll; DestDir: {win}\Crystal
Source: CR\u2fsepv.dll; DestDir: {win}\Crystal
Source: CR\u2ftext.dll; DestDir: {win}\Crystal
Source: CR\u2fwordw.dll; DestDir: {win}\Crystal
Source: CR\u2fxls.dll; DestDir: {win}\Crystal
Source: CR\u2lsamp1.dll; DestDir: {win}\Crystal
;end Crystal Report files

当IDE抛出错误时,它会突出显示哪一行代码?仅供参考:一般来说,IDE在缺少库的情况下突出显示的代码行通常与缺少的库没有任何关系。例如,您可能缺少所说的Crystal Reports库,但IDE可能会突出显示一行显示消息框的代码。因此,我不会依赖于从IDE停止的那一行收集任何有用的信息。当它抛出错误时,它会突出显示哪一行代码?仅供参考:一般来说,IDE在缺少库的情况下突出显示的代码行通常与缺少的库没有任何关系。例如,您可能缺少所说的Crystal Reports库,但IDE可能会突出显示一行显示消息框的代码。因此,我不会依赖于从IDE停止的行中收集任何有用的信息。理想情况下,您应该运行工具供应商提供的安装。同意@MarkJ。如果只是将所讨论的DLL复制到开发机器上,则还需要注册该DLL,但安装程序将负责该DLL(以及任何其他依赖项)。但是,如果出于某种原因,您没有和/或无法获得Crystal 8.5安装CD,则需要至少向regsvr32注册DLL,以便VB有希望找到它。理想情况下,您应该运行工具供应商提供的安装。同意@MarkJ。如果只是将所讨论的DLL复制到开发机器上,则还需要注册该DLL,但安装程序将负责该DLL(以及任何其他依赖项)。但是,如果出于某种原因,您没有和/或无法获得Crystal 8.5安装CD,则需要至少向regsvr32注册DLL,以便VB有希望找到它。