我有一个名为CyberSc.ocx的 OCX 库。
运行以下命令会在我的添加引用对话框的 COM 选项卡中添加一个条目:
regsvr32 CyberSc.ocx
当我添加到我的项目时,我得到了这个:
我的同事在他的 COM 选项卡上有两个条目,都称为CyberSc ActiveX Control Module,当他添加一个条目时,他得到第一个条目对Interop.CYBERSCLib.dll的 COM 引用和第二个对AxInterop.CYBERSCLib.dll的 COM 引用入口。
我能够添加的 COM 库(Interop 库)出现在我的 *.proj 文件中,如下所示:
<COMReference Include="CYBERSCLib">
<Guid>{5C31C2B3-955D-11D4-B3BB-00D0B77FDB6E}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
我的同事也能够添加第二个库(AxInterop 之一),在 *.proj 文件中有这个供参考:
<COMReference Include="AxCYBERSCLib">
<Guid>{5C31C2B3-955D-11D4-B3BB-00D0B77FDB6E}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>aximp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
我们两台机器上的 GUID 相同,而且在两个引用上也是如此,这让我认为他们都使用一个 COM 库,只是使用了两个不同的包装器。这是正确的吗?
我认为我的计算机包含tlbimp包装器工具是否正确,所以我可以将它与 COM 库5C31C2B3-955D-11D4-B3BB-00D0B77FDB6E 一起使用,但我的计算机不包含aximp包装器工具,所以我不能使用它使用相同的库,但是我同事的计算机包含两个包装工具?如果是这样,如何将aximp包装器工具添加到我的计算机?
我们在任何一个系统上都只能找到一个 *.OCX 文件。任何人都可以阐明这里发生了什么吗?如何仅从一个 *.ocx 文件将 Interop 和 AxInterop COM 库添加到 Visual Studio 项目的引用管理器的 COM 选项卡?
谢谢