首页 > 网站 > WEB开发 > 正文

C#写COM组件,JS调用控件

2024-04-27 14:21:04
字体:
来源:转载
供稿:网友

C#写COM组件,JS调用控件

1、c#2005中新建项目,类型为类库,项目名为AddCom确定。

  配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)”

2、打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)],如果不改则不能被其他程序调用

3、编写com组件会用到guid(全球唯一ID),编写com组件必须要用到。c#会默认生成一个放在AssemblyInfo.cs,如没有生成,网上下一个生成guid的软件,有很多呢。

4、c#中源代码如下,按如下方法编写代码后生成工程,/bin/release中得到AddCom.dll。

using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;

namespace AddCom{

[Guid("298D881C-E2A3-4638-B872-73EADE25511C")] public interface AddComInterface { [DispId(1)] int iadd(int a, int b); }

[Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")] [ClassInterface(ClassInterfaceType.None)]

public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, int b) { int c = 0; c = a + b; return c; } }}

5、dos下利用 e:/regasm AddCom.dll 命令注册com组件,可以理解为非.net平台下的regsvr32注册dll组件。提示注册成功即可。

regasm.exe一般存在C:/Windows/Microsoft.NET/Framework/v2.0.50727 ,如果提示不是命令符的话

C:/Windows/Microsoft.NET/Framework/v2.0.50727 /regasm D:/test.dll (D:/test.dll 为dll所在目录)

js调用com

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><OBJECT classid=CLSID:0045EA0A-2042-43F8-A2F4-B5CF54D45C10 id=COMTest width=0 height=0></OBJECT><script language="javaScript"> alert("----------------------start-----------------------");var wmp;var iResult = 12345;alert(iResult);wmp = document.getElementById("ComTest"); alert(wmp );if(wmp == null){    alert(wmp );}else{    iResult = wmp.iadd(4,9);    alert("Test Successful!");}alert("iadd(4,9) =" + iResult);alert("----------------------start-----------------------");</script></head></html>

如果需要js调用新方法,需要在接口里定义后,再在类里实现


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表