asp的JS里面如何调用自己用C#写的DLL类库(注意,不是调用后台方法,而是要调用DLL类库里面的类的方法)

JavaScript016

asp的JS里面如何调用自己用C#写的DLL类库(注意,不是调用后台方法,而是要调用DLL类库里面的类的方法),第1张

首先注册DLL:

regsvr32.exe D:\xxx.dll

如我的xxx.dll在D盘,注册如上方法。

或者直接引用<!--METADATA TYPE='typelib' FILE='D:\xxx.dll' -->

然后调用DLL方法

Set dice1=Server.Createobject('MyDLL.diclass')

'使用set语句创建dice1对象,其中MyDLL是上面创建dll文件时的工程名称(注意:不是文件的名称),diclass为类模块的名称。至此我们就可以用Maxpoint,Result和Throw属性(方法)来对dice1对象进行操作。

比如 里面的有一个方法axx()调用如下

dice1.axxx

hTML5和Javascript都属于跨平台语言,dll是windows的控件,并且html5和js也没有将dll纳入兼容调用范围。

当然,凡事有例外的,例如可以编写一个控件(针对不同的平台编写),然后在浏览器端调用,就像现在的监控软件,都需要安装私有控件才可以连接服务主机。但所编写的控件具体如何实现就靠自己搜资料了,并且不建议编写控件,毕竟浏览器的兼容支持比较难实现,确实有需要的话可以编程序,通过网络进行通信或者展现需要的内容。

实现js调用dll中的方法也是ajax中一种实现,首先新新建类库,类库名字叫ajax好了,然后新建process.cs文件,代码如下:

using System

using System.Web

namespace ajax

{

public class process:IHttpHandler

{

public bool IsReusable

{

get { return true}

}

public void ProcessRequest(HttpContext context)

{

context.Response.CacheControl = "no-cache"

context.Response.Write(DateTime.Now)

}

}

}

然后编译为ajax.dll

接着在web.config中添加

<configuration>

//IIS6

<system.web>

<httpHandlers>

<add verb="*" type="ajax.process,ajax" path="ajax.aspx"/>

</httpHandlers>

</system.web>

//IIS7

<system.webServer>

<handlers>

<add name="ajax" verb="*" type="ajax.process,ajax" path="ajax.aspx"/>

</handlers>

</system.webServer>

</configuration>

注意IIS6还要设.aspx的映射不检查文件是否存在。

最后创建test.htm文件:

<html>

<head>

<title>调用DLL中的处理</title>

<script type="text/javascript">

function getTime() {

var xmlHttp = new XMLHttpRequest()

xmlHttp.open("GET", "/ajax.aspx", false)

xmlHttp.onreadystatechange = function () {

if (xmlHttp.readyState == 4) {

alert(xmlHttp.responseText)

}

}

xmlHttp.send(null)

}

</script>

</head>

<body>

<input type="button" value="getTime" onclick="getTime()" />

</body>

</html>