js 调用 alt dll

 

实现目标:JavaScript调用ActiveX DLL

一.     创建ActiveX控件。

Visual C++提供了2个途径开发ActiveX控件:MFCATL

MFC开发ActiveX控件比较容易,不必关心控件接口的细节,只要把注意力集中在控件本身的功能上,但是生成的控件比较大,而且客户端如果要运行ActiveX控件,必须要具有相应版本MFC类库的DLL。使用ATL不涉及MFC类库,生成的控件相对较小。

      这里使用ATL的方式。

1.     打开VS6.0,点击File|New,打开如下对话框:

2.     Project name处命名为atlDemo然后点击OK,接受项目设置,接下来看到如下对话框:

然后Finish——OK。此时已经创建了一个空的COM DLL

3.     选择菜单Insert|New ATL Object,新建一个ATL Object,如下

4.根据向导进入如下界面,填写Short NameCallDll,剩余的系统会自动补填:

然后选择Tab选项卡Attributes标签页,

最后确定即可。

4.接下来就是完善接口和类的实现了。首先给接口添加一个属性,用来获取值。随后新建一个方法,负责进行一些计算,并把结果赋给该属性。选中接口ICallDll打开右键,看到如下所示

添加属性(Add Property),设置类型和名称:

编译器生成相应的代码:

添加方法,设置方法名与形参:

编译器生成代码:

5.在工作区打开类CCallDll代码部分,添加如下代码:

然后切换到FileView工作区,在CallDll.cpp文件写入我们的实现代码,如下图(这里实现的是加载一个非MFCDll,并调用该Dll里的一个GetRegResult方法,将返回结果赋给现有类的属性chResult

 

因为用到了类型转换函数_com_util::ConvertBSTRToString,所以头文件处需要加入#include <comdef.h>。然后编译,完成后,拷贝生成的DLL至系统system32目录下,注册后就可使用。

     JS调用代码。

    var atlCom=new ActiveXObject("AtlDemo.CallDll");//创建com对象
    atlCom.CalculateRegCode(document.getElementById("basePwd").value,document.getElementById("count").value);//调用com方法
    document.getElementById("regResult").innerHTML=atlCom.GetResult;//显示结果

    浏览网页,显示:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值