1

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

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

regsvr32 CyberSc.ocx

我的参考经理

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

添加

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

谢谢

4

1 回答 1

3

万一将来有人偶然发现这个问题,答案很简单。

  • 如上所述,您需要使用 regsvr32 将 OCX 文件注册为 COM 库
  • 将这个 COM 库添加到您的项目中(从 COM 选项卡)
  • 将 Windows 窗体添加到您的项目
  • 在设计器中,在工具箱内右键单击,然后单击选择项目...
  • 单击COM 组件选项卡
  • 勾选您的 COM 库名称旁边的框
  • 在工具箱中找到 OCX 控件并将其拖到 WinForm 设计器上
  • 现在 AxInterop COM 库会自动添加到您的项目中,您可以构建
于 2013-04-23T17:20:54.207 回答