【问题标题】:How do I create an activeX component for a desktop application in C#如何在 C# 中为桌面应用程序创建 activeX 组件
【发布时间】:2010-11-07 11:46:46
【问题描述】:

我需要为应用程序创建一个插件(带有 GUI),将它们作为 activeX 组件加载(遗留系统的乐趣)。我已经进行了一些谷歌搜索,但是虽然我可以找到多个关于如何为网页创建 activeX 组件的示例,但我找不到桌面等效项的任何示例。

【问题讨论】:

    标签: c# winforms activex


    【解决方案1】:

    您应该从一个新的 Windows 窗体控件库 - 项目开始。

    在项目属性对话框中,您的应用程序部分, 单击 [程序集信息 ...]。

    然后您将看到一个复选框:使程序集 COM 可见。 勾选这个选项。

    这相当于拥有

    [assembly: ComVisible(true)]
    

    在 AssemblyInfo.cs 中。您的所有(公共)用户控件都应该可以访问,例如在 VB6 项目中。

    没想到here讨论的这么麻烦

    主要观点似乎是:regsvr32 对 .net-dll 没用。您应该使用 regasm.exe

    【讨论】:

    • “否则为空”是什么意思?至少应包括一项控制。也许您重命名了包含的控件之一?因为我知道,每个控件都会为自己注册。最后一个问题:你能在旧系统中看到你的 COM-Control 吗?
    • 我的意思是它具有与项目一起创建的 UserControl1 类,并且该类没有出现在 ActiveX 控件测试容器中(来自旧版本 VS 的调试工具确实可以找到从我在其他地方找到的演示项目)可导入控件列表。
    • 我觉得这里有更多有用的指点:stackoverflow.com/questions/1685320/…
    • 现在看那个。我的问题似乎是项目级别的问题,因为当我从一个成功注册 com 的示例项目中添加一个类时,我仍然收到警告。
    【解决方案2】:

    这个问题有点老了,但是......我一直在寻找同样问题的答案。也就是说,我正在尝试编写一个通过 ActiveX 控件与旧应用程序相关联的驱动程序。作为最后的努力,我涉足 msdn 并找到了一个指向“一体化代码框架”的链接。在几十个样本中,有一个是CSActiveX。它回答了我的很多问题,所以我想我会分享。

    关于需要预构建事件的示例的注释,因此请确保并更正它以指向您的 rc.exe 副本。无论如何,我需要为 vs2010 更改它。

    【讨论】:

      猜你喜欢
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      相关资源
      最近更新 更多