【问题标题】:Building an OCX with VS.NET?使用 VS.NET 构建 OCX?
【发布时间】:2009-04-02 23:41:35
【问题描述】:

OCX 发生了什么?是否不再可能使用最新工具进行创作?

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

你会怎么做?

【问题讨论】:

    标签: interop activex ms-office user-controls ocx


    【解决方案1】:

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

    【讨论】:

    • 他们是否正在退出(OCX)?
    • 我认为这很有可能。随着向 .NET 的迁移,COM 现在实际上是任何形式的遗留技术。现在几乎没有理由使用 OCX。一个 CCW 调用的 .NET 程序集现在几乎总是一个更好的解决方案。
    • 什么是逆时针?我猜你指的是隐蔽携带以外的东西。
    【解决方案2】:

    您仍然可以使用 .NET 创建 ActiveX 组件。但是,这是实验性的,不推荐。如果您仍想尝试,可以在 Andrew Whitechapel 的博客中找到相关信息:

    Using Managed Controls as ActiveX Controls

    但正如安德鲁所说:

    这似乎适用于 Excel(使用 我所做的非常有限的测试), 部分适用于 PowerPoint,但 Word 失败得很惨。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 是的。它们很容易在 VB6 中创建。
      【解决方案4】:

      根据您的需要,插件可能比 OCX 更合适,您当然可以使用 .NET 创建它们。您还应该查看 Visual Studio Tools for Office,它不是 OCX 的直接替代品,而只是为了了解新功能。它可能会向您展示您现在使用 OCX 解决的问题的新方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-10
        • 2011-05-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多