2013-07-08 14:47:32| 分类: c&c++ | 标签: |举报 |字号大中小 订阅
前言:本人开发环境,win7,32位,vs2012
(一)、处理简单对象
新建ATLProject7项目
选中,“容许合并代理/存根代码",完成
添加后出现下图,输入类名
下一步,完成
双击方法名,添加以下代码,做加法运算,
同理,添加第二个方法strMessage,处理字符串(activex中的字符串处理用BSTR)
编译通过,生成解决方案。
选中解决方案中的方案名,右键,添加,类,选中”ATL简单对象“
完成后,解决方案里多了个IAltTest的接口,右键,添加,添加方法
出现以下对话框,输入正确的方法名,参数(in为输入参数,retval为返回输出,输出必须是指针类型)
下一步
完成,随后,在解决方案中选中选中IAltTest接口,下方就出现了刚添加的方法
输完参数,完成,双击,为strMessage方法添加以下代码
(
另:在开头添加以下3行代码
#include
"comutil.h"
#pragma
comment(lib, "comsuppw.lib")
#pragma
comment(lib,"comsuppwd.lib")
)
二、编写html文件,并在ie中调用
1、test.html文件如下:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<TITLE>对象 test 的 ATL 测试页</TITLE>
</HEAD>
<BODY>
<OBJECT ID="test" CLASSID="CLSID:F5222FA9-6907-4BE0-A258-A87381442478"></OBJECT>
<input type="button" value="Add" οnclick="add();" />
<script type="text/javascript">
function add()
{
var calc = document.getElementById('test');
var result = calc.add(3,6);
alert(result);
var str = calc.strMessage("hello,你个小屁孩");
alert(str);
}
</script>
</BODY>
</HTML>
其中,clsid来自
2、设置ie,使得容许activex运行,然后用ie打开test.html
容许阻止的内容,点击”add“按钮
选择”是“,容许交互
依次出现
OK,本次课程结束。