javascript调用dll,javascript调用本地程序

javascript 怎么调用 dll 接口? dll文件不能注册,直接调用里面的函数进行通信.

如果Javascript作为前端脚本(就是在浏览器端运行的)使用的话,要调用自己的DLL几乎是不可能的,任何浏览器都不会让网页随意这么做的,太不安全了。只有极少数DLL是可以在浏览器中直接调用的,比如xmlhttp,大部分DLL调用时都会提示用户是否允许运行,甚至直接封杀。

为文县等地区用户提供了全套网页设计制作服务,及文县网站建设行业解决方案。主营业务为成都网站建设、做网站、文县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

如果是在服务器端使用Javascript(如ASP)调用DLL,这倒是有可能的,但有很多限制条件,比如函数要提供ActiveX接口(类似"Scripting.FileSystemObject"这样的)、要在服务器上对DLL进行注册(如果用的是虚拟服务器空间这几乎是办不到的,换句话说必须是自己的服务器才行)等等。

[img]

js里怎样调用c#写的dll

js只支持Activex Dll(所谓的com组件).在C#里如下面的方法写.

然后js里注册该控件并调用.

里面有两个方法

Encrypt(string pToEncrypt,string sKey) //加密

Decrypt(string pToDecrypt,string sKey) //解密

然后你这样写代码:

using System;

using System.Runtime.InteropServices;

namespace 名称空间

{

// 首先建立接口,这个是Com必须使用的

[Guid("61BB24CB-4C2C-40f8-9E13-1AC5E558D56A")]

public interface IEncrypt

{

string Encrypt(string pToEncrypt,string sKey);

string Decrypt(string pToDecrypt,string sKey);

}

// 写接口的实现

[Guid("CB52E990-185E-4448-A7E8-C88ECAD563AB")]

public class 类名称 : IEncrypt

{

public string Encrypt(string pToEncrypt,string sKey)

{

// 复制FAQ加密代码

}

public string Decrypt(string pToDecrypt,string sKey)

{

// 复制FAQ解密代码

}

}

}

然后用vs.net打包成.dll类库文件,假设名称为MyEncrypt.dll

然后用如下工具

regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb

这个.tlb文件就是类型库,可以由vb6和vc++6引用。

注意上面的guid是使用vs.net工具菜单里面的创建guid工具生成的。

还要注意,vs.net自动生成的assemblyinfo.cs文件中必须添加强名称和版本号,因为Com组件需要版本号,不要改动版本号,也不要用vs.net自动的1.*这样的版本号,最好使用

1.1.1.1这样的固定版本,而且必须一次添加,不能多次添加。

regasm后怎样在js里调用?

用你的例子是这样?

var ss = new ActiveXObject("MyEncrypt.类名称");

JS不可以调用普通的Dll动态链接库,但你可以使用new ActiveXObject调用ActiveX DLL,如:

script

set z_shell= CreateObject( "WScript.Shell" )

z_shell.Run( "command.com /c mkdir " + "c:\NewDir")

/script

关于javascript调用本地dll

这根本就是不可能的事情,你想想,页面里的 JS 都是开发人员写的,而在浏览者的电脑上执行。如果像你说的能用 JS 直接调用 dll 的话,那么这个不是比病毒还要厉害了?人家电脑你想怎么玩就怎么玩。这简直就是浏览器史无前例的漏洞了,所以不用想了,不可能是你要的这种用法


分享文章:javascript调用dll,javascript调用本地程序
标题链接:http://myzitong.com/article/dsopieg.html