C# 做ActiveX控件问题

创建ActiveX控件:

1、 新建项目“Windows控件库”,从项目中删除UserControl1.cs,新建“用户控件”项并指定名称。

2、 打开项目属性,在“生成”标签页中选中“为COM Interop注册”。

3、 打开Properties中的AssenblyInfo.cs,修改[assembly: ComVisible(false)],将false改为true,否则编译会出现“不包含可为COM Interop注册(注销)的任何类型”警告。

4、 编译。

创建网页:

1、 新建ASP.NET网站,选择“位置”时单击“浏览”,选择本地IIS,“创建新的Web应用程序”,打开并确定。

2、 在Default.aspx的适当位置加入

<object classid="http:TestActiveX.dll#TestActiveX.Picture" width="640px" height="480px"></object>

其中classid的格式为“http:组件名#命名空间.类”。

3、 生成网站。

4、 将组件复制到网站相应目录中。

 

使用C#创建ActiveX控件(译文)

首先创建DLL库,代码如下:

using System;

using System.Runtime.InteropServices;

namespace ANamespace

{

// 定义COM组件的接口

public interface ASignatures

{

    string FName();

    string SName();

    int Age { get;}

}

// 表明此类会被公开为一个COM组件的接口

[ClassInterface(ClassInterfaceType.AutoDual)]

public class AClass :ASignatures

{

// 具体实现接口的方法

    public string FName()

    {

      return "Imran";

    }

    public string SName()

    {

      return "Nathani";

    }

    public int Age

    {

      get { return 24; }

    }

}

}

将上面的代码保存为AClass.cs,然后编译: csc /t:library AClass.cs

将得到一个AClass.dll,然后注册:regasm AClass.dll /tlb /codebase

最后创建一个HTML测试网页,内容如下:

<html>

<head>

<script language="javascript">

    <!-- Load the ActiveX object -->

    var x = new ActiveXObject("ANamespace.AClass");

    <!-- Access the Method -->

    alert(x.FName());

    alert(x.SName());

    <!-- Access the Property -->

    alert(x.Age);

</script>

</head>

<body>

</body>

</html>

posted @   彩虹下的约定  阅读(255)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
点击右上角即可分享
微信分享提示