您的位置:首页 > 编程语言 > C#

C# 做ActiveX控件问题

2016-01-22 16:00 337 查看
创建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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: