2008-12-12 58 views
4

OCX发生了什么事?他们不能再用最新的工具创造吗?用VS.NET构建OCX?

我需要创建一个可以放在Word,PowerPoint和Excel文档中的ActiveX控件。如果我使用VS.NET,我只能使用COM Interop创建一个UserControl DLL,但我不认为我可以使用PowerPoint的“开发人员”选项卡的“更多控件”工具箱添加它。

你会做什么?

回答

3

是的,你仍然可以创建它们。但是你不能用.NET语言创建一个OCX。需要非托管的C++(或VB)。可以在C#或VB.NET中创建的具有COM互操作的DLL只是通过CCW调用的.NET对象。

+0

他们是否在出路(OCXs)? – Jason 2008-12-12 19:23:27

+1

我想说这很可能。随着向.NET的转移,COM实际上已成为任何形式的传统技术。目前几乎没有理由使用OCX。 CCW调用的.NET程序集现在几乎总是一个更好的解决方案。 – TheSmurf 2008-12-12 19:32:48

0

使用可以定位本机代码+ ActiveX的C++或VB编译器。

3

您仍然可以使用.NET创建ActiveX组件。但是,这是实验性的,不推荐。如果你仍然想尝试它,你可以在安德鲁白教堂的博客找到信息:

Using Managed Controls as ActiveX Controls

但正如安德鲁说:

这似乎为Excel工作确定(与 我做了非常有限的测试), 部分与PowerPoint的作品,但 与Word失败失败。

所以,如果你不想花大量的时间调试奇怪的错误,我会建议你使用旧的VB 6.0和Visual Studio 6.0来构建你的ActiveX组件。

0

根据你需要做什么,加载项可能比OCX更合适,你可以使用.NET创建这些加载项。您还应该查看Visual Studio Tools for Office,而不是直接替换OCX,但只能了解新功能。它可能会向您展示解决您现在使用OCX解决问题的新方法。