从系统(SysWOW64)目录外部注册32位COM时出现问题



为了编译直接依赖于它的项目,我在完成32位组件或库(比如OCXdll(的注册状态时遇到了问题。

实现它的标准过程是通过SysWOW64文件夹中的regsvr32.exe指向组件/库目标的参数,例如C:WindowsSysWOW64regsvr32.exe someComponent.ocx

然而,在破坏了注册表并重新安装组件之后,这是我使其工作的唯一方法是通过将该CCD_ 4及其依赖文件复制到CCD_。

直到那时,在使用regsvr32(都在同一个SysWOW64文件夹中(后,Visual Studio编译器成功地编译了它,有点像它对我已经做过的事实视而不见——事实证明这反过来又取决于该密钥在Windows注册表中的存在。

有人经历过这样的事情吗?为什么它只通过";直接的";组件在SysWOW64系统文件夹中的存在;遥远的";在其他非系统文件夹中??

感谢

所以这些都不是对的,但我将留下这个答案,因为OP确认了它们都不是正确的,这缩小了问题的范围。

有几种方法可能会出错。所有这些情况都不起作用:

  • 在C:\Program Files中注册32位dll
  • 在C:\Windows\System32中注册32位dll
  • 当当前目录位于其中一个dll中或其下时,正在注册一个32位dll
  • 未注册为管理员。这在32位代码中做了一些疯狂的事情,可能会导致混乱的问题

最新更新