解决此问题的方法是启动一个新的 VB6 项目 > 项目菜单组件 > 勾选受影响项目中选择的组件,直到出现错误。
---------------------- Microsoft Visual Basic -------------- --
名称与现有模块、项目或对象库冲突
--------------- OK 帮助 -------- ------------------
您需要将其缩小到两个冲突的 OCX。
就我而言,我将其范围缩小到 Sheridan 3D Controls / THREED32.OCX 和 Outrider Spin Control / SPIN32.ocx
为了解决这个问题,我使用 RegSvr32 取消注册 OCX - 确保使用 /u 标志取消注册。
REGSVR32 "C:\WINDOWS\system32\THREED32.OCX" /u
然后我将 OCX 复制到项目文件夹并使用以下方法再次注册它们:
REGSVR32 "C:\Dev\Project\THREED32.OCX"
然后在有问题的项目中 > 项目菜单组件 > 选择列表框中的项目 Sheridan 3D controls / THREED32.ocx (你不能在没有得到错误的情况下打勾或取消选中被选为正在使用的冲突项目)> 单击浏览并从项目文件夹而不是 C:\WINDOWS\system32\ 引用它
另一个技巧是关闭项目并注销受影响的 ocx - 确保使用 /u 标志注销它,例如
RegSvr32 "c:\Windows\system32\mscomctl.ocx" /u
然后打开项目>组件>,您应该看到“Microsoft Windows Common Controls 6.0 (SP6)”正在使用 C:...\Microsoft Vi..\VB98\mscomctl.ocx 中的 OCX 文件,而不是 c:\ Windows\system32\mscomctl.ocx。
然后,该项目应加载而不会出现以下错误:
Errors during load. Refer to xyz.LOG