WEB页面通过ActiveX控件调用DLL动态库(三):VS2013编写ATL DLL(ActiveX)并通过Web调用ATLDLL
WEB页面通过ActiveX控件调用DLL动态库(三):VS2013编写ATL DLL(ActiveX)并通过Web调用ATLDLL
本文的在于使用VS2013编写ATL生成DLL后并通过Web页面进行调用,ATL(ActiveX)调用DLL将在下节四种介绍。
调用流程为 Web >ATLDLL。
(一)创建ATL
1.打开vs2013,新建项目为ATL空项目,其名为ATLtest。直接点击完成即可
2.在解决方案ATLtest上右键,添加,类,选择ATL简单对象。点击添加。
3.填写ATL对象名称,注:ProgID为Web调用时所使用的。点击完成。
4.在类视图中找到IATLtestdemo接口,右键添加、方法。
方法名为multip
添加两个LONG型入参a、b,LONG*的返回值out。点击完成。
5.在解决方案的源文件ATLtestdemo.cpp中,出现了添加的方法具体函数:
在其中输入以下代码:完成两数乘积。
STDMETHODIMP CATLtestdemo::multip(LONG a, LONG b, LONG* out)
{
// TODO: 在此添加实现代码
int mul = static_cast<int>(a)* static_cast<int>(b);
*out = static_cast<LONG>(mul);
return S_OK;
}
6.选择Release,右键解决方案,属性,链接器,常规,逐用户重定向选择是。
7.右键解决方案,生成成功。
8.在其工程目录下Release文件夹下生成了编译好的ATLtest.dll文件
9.64位机器将ATLtest.dll文件放置C:\Windows\SysWOW64下
32位放置C:\Windows\System32下。
管理员身份运行cmd,进入到C:\Windows\SysWOW64下,
执行加载rebsvr32 ATLtest.dll
(卸载rebsvr32 /u ATLtest.dll)
注册成功。
(二)编写HTML
创建一个HTML后缀文件,输入一下代码:
<html>
<head>
<title>Document</title>
<script language="javascript" type="text/javascript">
function functionInfo() {
var mydll=new ActiveXObject("ATLtestdemo");
var result=mydll.multip(2,4);
alert(result);
}
</script>
</head>
<body>
<input type="button" value="test" onclick="functionInfo()">
</body>
</html>
注意:两个注意的地方,一个是web调用DLL的名称,一个是所建立的方法。
目前ActiveX支持IE浏览器,将编写好的html文件拖入到web上,点击允许阻止的内容。点击test按钮,
选择是
即可弹出正确计算后的数字。