【问题标题】:Unable to register crystl32.ocx无法注册 cristl32.ocx
【发布时间】:2024-01-02 13:27:01
【问题描述】:

当我尝试在我的 Windows 7 系统上启动 VB6 应用程序时,我不断收到错误消息

Component 'crystl32.ocx' or one of its dependencies not correctly registered: a file is missing or invalid

我尝试了很多方法来注册它,比如首先将crpe32.dllimplode.dll 复制到System32syswow64 文件夹中,然后使用regsvr32.exe 进行注册,但这会给我错误消息

The module 'crystl32.ocx' failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. THe specified module could not be found.

我可以浏览到C:\Windows\System32SysWow64 并查看那里的文件。

最近我安装了Oracle 11g,卸载了Oracle 9g,也玩弄了Environment variables,这是导致问题的原因吗?在此之前,相同的应用程序运行良好,没有任何错误消息。

【问题讨论】:

  • 找不到指定的模块。 看起来您仍然缺少 DLL。你有没有通过十六进制编辑器查看它引用的 DLL 列表?
  • 如果有帮助,我确实找到了this
  • 您是否尝试在控制台上以管理员权限注册?
  • @Korsakof 是的。得到同样的错误
  • 你重启机器了吗?如果没有,你应该。还有你在这个路径“CD C:\Windows\System32”注册了吗?

标签: windows-7 vb6 regsvr32 dllregistration


【解决方案1】:

试试这个:确保在 C:\WINDOWS\SYSWOW64 文件夹中找到这些文件:

crystl32.ocx, crviewer.dll, 内爆.dll, crpe32.dll

然后使用 Regsvr32.exe WITHIN C:\WINDOWS\SYSWOW64 文件夹,而不是通过以下命令在 C:\WINDOWS\SYSTEM32 文件夹中找到的那个:

regsvr32 c:\Windows\SysWow64\crystl32.ocx

【讨论】:

    【解决方案2】:

    如果这在任何其他机器上都有效,请查看您是否可以使用 Process Explorer 或类似工具来查看它在工作时加载了哪些依赖项。

    【讨论】:

      【解决方案3】:

      如果您使用任何外部OCX 控件,您需要移动所有关联的文件。对我和crystl32 来说,system32 的内容更多。我是怎么找到他们的?

      1. 转到system32
      2. 设置此文件夹的详细信息视图
      3. 右键单击列标题(任何都可以)
      4. 点击More
      5. 在此列表中查找可以显示您的 ocx 与其他所需文件之间的联系的内容*
      6. 将所有这些文件复制到 system32
      7. 尝试注册原版

      *对我来说是 DescriptionCompany 取决于我想注册的 OCX。

      【讨论】: