vs2012 ATL编写activex(一)



 2013-07-08 14:47:32|  分类: c&c++ |  标签: |举报 |字号 订阅

前言:本人开发环境,win7,32位,vs2012

(一)、处理简单对象

一、前面的简单,如建项目,选项等,用图片带过
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
新建ATLProject7项目
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
选中,“容许合并代理/存根代码",完成
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
选中解决方案中的方案名,右键,添加,类,选中”ATL简单对象“
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 添加后出现下图,输入类名
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 下一步,完成
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
完成后,解决方案里多了个IAltTest的接口,右键,添加,添加方法
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
出现以下对话框,输入正确的方法名,参数(in为输入参数,retval为返回输出,输出必须是指针类型)
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
下一步
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
完成,随后,在解决方案中选中选中IAltTest接口,下方就出现了刚添加的方法
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 双击方法名,添加以下代码,做加法运算,
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 同理,添加第二个方法strMessage,处理字符串(activex中的字符串处理用BSTR)
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
输完参数,完成,双击,为strMessage方法添加以下代码
另:在开头添加以下3行代码
#include  "comutil.h"
#pragma  comment(lib, "comsuppw.lib")
#pragma  comment(lib,"comsuppwd.lib")
)
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
 编译通过,生成解决方案。

二、编写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来自
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
 

2、设置ie,使得容许activex运行,然后用ie打开test.html
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
容许阻止的内容,点击”add“按钮
选择”是“,容许交互
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
依次出现

vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
vs2012 ATL编写activex(一) - 宝宝 - 云淡风清
 
OK,本次课程结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值