asp的JS里面如何调用自己用C#写的DLL类库(注意,不是调用后台方法,而是要调用DLL类库里面的类的方法) 5
比如说现在已经写好了A.dll,里面有个B.cs类,B里面有个C()方法,那我如何在前台的JS中直接调用这个方法呢?网上查了很多资料,说是要将DLL注册成COM组件(Ac...
比如说 现在已经写好了A.dll,里面有个 B.cs类,B里面有个C()方法,那我如何在前台的JS中直接调用这个方法呢?网上查了很多资料,说是要将DLL注册成COM组件(ActiveX 控件),这样才能在JS中调用,可是我不知道具体的操作方法?谁能具体说下注册COM组件的详细过程和JS调用这个COM组件中的具体方法?要贴上详细代码哦,谢谢了
dll
namespace TestCom2{
[ComVisible(true)]
[Guid("98F89E87-4E45-425d-A31C-4D5BEB438FAF")]
public interface IMyClass
{
void Initialize();
void Dispose();
int Add(int x, int y);
}
[ComVisible(true)]
[Guid("54DE48E8-B7F3-4d1b-99C9-9DAA42E7D00C")]
[ProgId("TestCom2.MyClass")]
public class MyClass : IMyClass
{
public void Initialize()
{
}
public void Dispose()
{
}
public int Add(int x, int y)
{
return x + y;
}
}
}
asp
<script …>
var o=new ActiveXObject("TestCom2.MyClass");
o.Initialize;
function Add() { alert("1 + 2 = "+o.Add(1,2)); }
</script>
<object classid="clsid:54DE48E8-B7F3-4d1b-99C9-9DAA42E7D00C" id="oframe" width="0" height="0">
<param name="BorderStyle" value="1"/>
</object> 展开
dll
namespace TestCom2{
[ComVisible(true)]
[Guid("98F89E87-4E45-425d-A31C-4D5BEB438FAF")]
public interface IMyClass
{
void Initialize();
void Dispose();
int Add(int x, int y);
}
[ComVisible(true)]
[Guid("54DE48E8-B7F3-4d1b-99C9-9DAA42E7D00C")]
[ProgId("TestCom2.MyClass")]
public class MyClass : IMyClass
{
public void Initialize()
{
}
public void Dispose()
{
}
public int Add(int x, int y)
{
return x + y;
}
}
}
asp
<script …>
var o=new ActiveXObject("TestCom2.MyClass");
o.Initialize;
function Add() { alert("1 + 2 = "+o.Add(1,2)); }
</script>
<object classid="clsid:54DE48E8-B7F3-4d1b-99C9-9DAA42E7D00C" id="oframe" width="0" height="0">
<param name="BorderStyle" value="1"/>
</object> 展开
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
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
追问
asp的JS里面好像没有Set dice1=Server.Createobject('MyDLL.diclass')这样的写法吧
追答
“Server.Createobject('MyDLL.diclass')”
这个是应用方法的。就如你应用数据库一样
定义:set rs=server.CreateObject("adodb.recordset")
这个也不是JS单纯的ASP语言。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询