可以用 C# 构建一个 64 位 ActiveX 控件供企业应用程序使用吗

Posted

技术标签:

【中文标题】可以用 C# 构建一个 64 位 ActiveX 控件供企业应用程序使用吗【英文标题】:Is it ok to build an 64 bit ActiveX control with C# for enterprise application use 【发布时间】:2011-09-01 20:58:25 【问题描述】:

我计划构建一个 64 位 ActiveX 控件以在我的网页中使用。所以我的问题是可以用 C# 构建它吗?它能够处理复杂的业务逻辑吗?我问这个的原因是我比ATL更熟悉C#。

在提出这个问题之前,我搜索了所有相关的帖子,它们都是关于如何使用 C# 构建 ActiveX。不过我想知道这是一个不错的选择还是 ATL 会更好?

顺便说一下,我之前版本的ActiveX控件是用VB6编码的32位,但是VB6是不可能构建64位ActiveX控件的。

感谢您的任何建议和建议!

问候, 叔平

【问题讨论】:

这是一个非常主观的问题。如果“是否可以”是指技术上是否可行,答案是肯定的。但是我们几乎不知道可能存在的任何边界条件...... C#的局限性应该是众所周知的,所以它当然会处理复杂的业务逻辑。但是您可能想考虑将现有的 VB 代码移植到 VB.NET……这可能会更省力 - 但我当然不知道实际代码,所以很难确定。 嗨,我错过了我的 ActiveX 控件将调用一些 64 位 COM DLL(C++)的一件事。那么,与使用 ATL 构建 ActiveX 控件相比,使用 C# 或 VB.NET 构建它有什么缺点吗?比如客户端机器上需要的.NET框架?互操作导致性能问题? 【参考方案1】:

如果您最熟悉 C#,为什么不在 Silverlight 中构建它?将比构建和部署 ActiveX 控件容易得多。

【讨论】:

+1。我会认真地问自己一个问题,我真的需要将它构建为一个activex控件。对于 Web 部署,现在肯定有更好的选择。 您好 JonoW,我错过的另一件事是我的 ActiveX 控件将调用一些第三方 COM DLL(C++)。实际上,大多数功能来自 COM DLL,我的 ActiveX 控件只是一个包装器,用于为网页 javascript 使用公开最小接口。所以,Silverlight 可能无法做到这一点。【参考方案2】:

从 Clickonce 或 Java web start 启动的 Windows 窗体应用程序怎么样?您不能从 32 位 IE 运行 64 位 ActiveX。

【讨论】:

您好,我的项目是一个使用 Web 浏览器 (IE) 运行的 Web 应用程序。 ActiveX 控件嵌入在网页中以显示一些图形曲线。目前我有一个可以在 32 位 IE 上运行的 32 位版本。但是现在,我们需要支持 64 位,这将在 64 位 IE 上运行。

以上是关于可以用 C# 构建一个 64 位 ActiveX 控件供企业应用程序使用吗的主要内容,如果未能解决你的问题,请参考以下文章

64 位 visio 上不支持无窗口 ActiveX 控件异常

单个 MSI 安装正确的 32 或 64 位 c# 应用程序

VBA CreateObject 无法在 64 位 Windows 上创建 ActiveX 组件

关于ActiveX在WebBrowser不加载问题

如何同时支持32位和64位组件自动安装

针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法