1

我创建了一个非常简单的用户控件 ActiveX,它带有一个显示 MessageBox 的简单按钮。

namespace AxCPW
{
    public partial class Test: UserControl, ITest
    {
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World");
        }
    }
}

接下来,我在我的 asp.net 项目中创建了一个网页,并将我的用户控件嵌入其中。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
    <object id="myControl" name="myControl" classid="AxCPW.dll#AxCPW.Test" width="100" height="100">
    </object>
</body>
</html>

问题是我看到一个损坏的图像而不是我的 UserControl,我已经在 IE9 上添加了我的本地主机 Web 服务器受信任的站点,但不起作用。

我知道 ActiveX 是一个过时的解决方案,但我需要使用第三方 sdk dll(通过 USB 与设备通信),我认为唯一可用的解决方案是这个

4

1 回答 1

0

ActiveX 是一种 COM 技术(本质上是“网页中的 COM”),并且不了解 .NET 技术。

要使用 C# 开发的 ActiveX 控件,需要通过 COM 公开接口。此外,您将需要使用 注册 DLL RegAsm,而不是gacutil将 COM 注册信息写入注册表,而不是将程序集添加到 GAC。最后,该classid属性必须是 COM GUID,而不是“友好名称”。

如果您需要自动部署 ActiveX 控件,并且对于使用 GUID 的示例 HTML,请查看我对Deploy C# ActiveX in a CAB for Internet Explorer use 的回答。

于 2012-09-07T09:01:57.310 回答