使用带有COM库的aximp WrapperTool

时间:2013-04-23 13:08:10

标签: .net visual-studio-2012 com reference ocx

我有一个名为 Cyber​​Sc.ocx 的OCX库。

运行以下命令会在“添加引用”对话框的“COM”选项卡中添加一个条目:

regsvr32 CyberSc.ocx

My Reference Manager

当我添加到我的项目中时,我得到了这个:

Added

我的同事在他的COM选项卡上有两个条目,都称为 Cyber​​Sc 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库?

由于

1 个答案:

答案 0 :(得分:3)

只是让任何人在将来偶然发现这一点,答案很简单。

  • 您需要使用regsvr32将OCX文件注册为如上所述的COM库
  • 将此一个COM库添加到项目中(从COM选项卡)
  • 将Windows窗体添加到项目中
  • 在设计器中,右键单击工具箱内部,然后单击选择项目...
  • 点击 COM组件标签
  • 勾选COM库名称旁边的框
  • 在工具箱中找到OCX控件并将其拖到WinForm设计器上
  • 现在,AxInterop COM库可以自动添加到您的项目中,您可以构建