gpt4 book ai didi

dll - 安装程序因某些 DLL 的 "failed to register"错误而失败

转载 作者:行者123 更新时间:2023-12-01 12:41:34 27 4
gpt4 key购买 nike

我开发了一个 vb6 程序,然后我用 visual studio interdev 构建了一个安装向导。

我使用“dependency walker”和“process explorer”来找出丢失的 DLL,但总是有问题:

IESHIMS.DLL
WER.DLL
MPR.DLL

这些 dll 由 dependency walker 显示。

在另一台机器上安装程序时,我收到这些错误消息:

uxtheme.dll failed to register
msdatsrc.tlb failed to register etc..

PS:在安装了visual studio的机器上没有问题。

有解决此问题的想法吗?

谢谢

最佳答案

Dependency Walker 不是解决 VB6 依赖性问题的合适工具。它适用于使用隐式依赖项的 C 或 C++ 编写的 DLL。虽然它没有跟上时代的步伐,并且对存储在 Windows 并排缓存中或延迟加载的 DLL 有问题。延迟加载是在 ieshims.dll 等上生成警告的原因。

VB6 使用 COM,它使用 LoadLibrary() 动态加载 DLL。除非您使用 Profile 选项,否则您永远不会在 Depends 中看到这样的依赖关系。此类 DLL 可通过注册表找到,这就是您需要编写安装程序并修改 regsvr32.exe 的原因。

编写这样的安装程序时必须非常小心,VB6 并且可能依赖于自 1998 年以来已更新多次的操作系统组件。例如 uxtheme.dll,一个重要的操作系统实现视觉样式的 DLL。让您的安装程序覆盖用户计算机上现有的安装程序是灾难性的。虽然它可能通过其文件系统保护功能受到 Windows 的保护,但添加了一些东西作为防止安装程序损坏的对策。

除了“不伤害”之外,这里很难提供适当的建议。像 InstallShield 或 Wise(我当时喜欢它)这样的商业安装程序是避免让客户失望的最佳方式。相当确定他们仍然支持 VB6 安装。 Microsoft 为 VB6 提供了预安装程序,可安装所有核心 vb6 运行时组件。你可以download it here .

关于dll - 安装程序因某些 DLL 的 "failed to register"错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com