您的位置:首页 > 其它

用ATL开发ActiveX网页控件

2014-11-10 13:47 204 查看
由于业务需要,需要做一个网页插件,以前研究过一点,可以用MFC或者ATL来做,如果不需要界面,用ATL比较好些。这次用ATL开发实现了功能,所以在这里记录下开发流程和需要注意的问题。

开发环境:win7 sp1,visual studio 2013;

微软的vs2013功能很强大,很多代码都不需要自己去写,能自动生成。由于每个项目需求的功能不一样,所以不介绍网页插件具体实现的功能,只介绍下实现网页插件的步骤,下面就来介绍下工程实现的步骤:

一:创建一个ATL工程,如图

各个选项不需要改动,直接下一步,下一步,完成就行了,生成的文件是dll的,可以重命名为*.ocx



二:添加实现插件功能的类。右键项目——添加类——ATL——ALT控件



手动输入一个类名,然后就按照向导一步步完成



3,在类中添加函数,或者说方法。

切换类视图,右键刚才添加的类的名称的接口


选择添加方法,向导,定义方法名称,和输入参数,也可以定义输出参数(注意,如果是输出参数必须为指针,但是如果要传入字符串,不能用char*,应该用BSTR,不用指针,不然会被强制转换成BOOL类型


四,实现函数

在类的源文件中,可以看到刚才添加add(LONG num1, LONG num2)函数

STDMETHODIMP Cfirst::add(LONG num1, LONG num2)

{

// TODO: 在此添加实现代码

LONG sum = num1 + num2;

char szSum[64] = { 0 };

sprintf(szSum,"%d + %d = %d",num1,num2,sum);

MessageBox(NULL,szSum,NULL,NULL);

return S_OK;

}

在自动生成的测试网页中略加修改

<HTML>

<HEAD>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>

<TITLE>对象 first 的 ATL 测试页</TITLE>

</HEAD>

<BODY>

<object id="first" classid="CLSID:B9722C72-B9B7-438E-B445-E7664C29677B"></object>

<input type="button" value="Add" onclick="add();" />

<script type="text/javascript">

function add() {

var obj = document.getElementById("first");

obj.add(2,3);

}

</script>

</BODY>

</HTML>

效果图


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: