我.ocx
在vb6
. 我注册了 2 个组件,但是当我尝试将这两个组件添加到我的项目中时,它说我需要注册它们。我尝试将新文件复制到sysWOW64
文件夹中,但仍然无法正常工作。
1 回答
当注册表中存在一些损坏和冲突时,偶尔会发生这种情况。解决此问题的一种方法是将这两个项目放在项目中的一个文件夹中,并通过手动转到引用并选择该本地副本来添加它们,它会自动将其注册为新对象,并且通常(尽管并非总是)会修复通过标记新路径来解决腐败问题,它通常可以解决您面临的问题。唯一的问题是,在未来的项目中,您可能需要重复该过程或有权访问这些项目。
更简洁的方法是通过进行高级搜索并在系统上查找它们的所有副本来查找系统上文件的所有实例,通常它们遍布各处。一旦你有了这些路径,你需要regsvr32 /u <filepath.filename>
从注册表中清除它们,然后将它们放在一个公共区域中,然后从一个位置注册它们regsvr32 <filepath.filename>
,现在事情应该可以相当干净地工作了。
查找计算机上所有实例的最简单方法(至少对我而言)是简单地转到命令提示符(如果使用比 XP 更新的版本,则以管理员身份),然后只需键入:
C:
cd\
dir /s <filename.ext> > c:\files.txt
并等到它完成,此时您打开该文件,它应该为您提供所需文件的所有路径,您可以通过添加您需要取消注册并运行它的命令轻松地将文本文件转换为批处理文件,瞧,快速且相当无痛。如果您在任何时候取消注册并且它抱怨它没有注册或无法注册,请不要担心,只需承认并继续前进。一些 OCX 和 DLL 没有注册入口点。如果您注册并抱怨说它不能这样做,那么您几乎别无选择,只能按照我一开始提到的方式,通过直接链接您的参考资料并将其放入您的项目中。
最后要注意的是,除非它们是 64 位兼容的,否则您不需要并且通常不应该将它们放在 WOW 系统文件夹中,而是将它们放在 system 和 system32 文件夹中,具体取决于原始 OCX 的版本控制和二进制控制。