[当我以为我了解Microsoft关于WIN32和WIN64注册表和文件夹的混乱命名时,我读了这篇文章(Using 32-bit or 64-bit ActiveX Components on x64 Windows),发现自己仍然对如何在同一WIN64上正确注册32位和64位OCX控件感到困惑。电脑。从文章中可以看出,在WIN64系统上,默认的regsvr32用于注册64位OCX控件并注册32位版本的OCX控件,我应使用C:\ windows \ syswow64 \ regsvr32.exe] >。问题是我一直在使用默认的regsvr32.exe(在C:\ windows \ system32中)注册WIN32 OCX控件,当我运行使用32位的32位应用程序时,它似乎运行良好。 OCX位。我有以下问题:
Q1
鉴于我在本文中所读的内容,使用默认的regsvr32注册WIN32 OCX的工作方式如何。Q2
我想在一台计算机上同时注册OCX控件的WIN32和WIN64版本。从本文看来,我应该分别使用syswow64和system32的regsvr32.exe的两个不同版本分别用于WIN32和WIN64版本。这是正确的吗?Q3
WIN32和WIN64版本的OCX的GUID是否可以相同?我认为它可以是相同的,因为注册表的不同部分用于为每种体系结构进行注册。对吗?Q4
我在注册表中的什么位置可以确认已经注册了64位和32位版本的OCX,以确认注册第二个版本不会覆盖第一个版本?[当我以为我了解Microsoft关于WIN32和WIN64注册表和文件夹的混乱命名时,我读了这篇文章(在x64 Windows上使用32位或64位ActiveX组件)和...]]
A1和A2好吧,由于没有人对此进行回复,因此我将添加自发布以来所学的内容。我所引用的文章似乎在描述如何运行32位和64位regsvr32.exe方面具有误导性。通过我自己的测试,似乎可以使用默认的64位regsvr32.exe来注册32位和64位OCX控件。似乎regsvr32(至少为64位版本)查看目标OCX或DLL文件,并确定它是32位还是64位并将其安装在适当的注册表中。似乎没有必要在64位Windows上使用regsvr32的32位版本。