我有一个名为 CyberSc.ocx 的OCX库。
运行以下命令会在“添加引用”对话框的“COM”选项卡中添加一个条目:
regsvr32 CyberSc.ocx
当我添加到我的项目中时,我得到了这个:
我的同事在他的COM选项卡上有两个条目,都称为 CyberSc ActiveX控件模块,当他添加一个条目时,他获得了对 Interop.CYBERSCLib.dll 的COM引用第一个条目和第二个条目的 AxInterop.CYBERSCLib.dll 的COM引用。
我能够添加的COM库(Interop one)出现在我的* .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文件向Visual Studio项目的参考管理器的COM选项卡添加Interop和AxInterop COM库?
由于
答案 0 :(得分:3)
只是让任何人在将来偶然发现这一点,答案很简单。