设为首页 收藏本站
查看: 1685|回复: 0

win7下IE调用ActiveX的Hello World(VS2008)

[复制链接]

尚未签到

发表于 2015-5-18 09:57:15 | 显示全部楼层 |阅读模式
  IE调用ActiveX已经不是什么新鲜事了,但是Hello World版本是什么样的呢?参考如下步骤即可。本人的测试环境VS2008 SP1(英文版),Win7,IE 8。
  1. 创建ATL工程HelloActiveX
选择菜单File->New->Project,然后选择Virtual C++->ATL->ATL Project,
Name内输入HelloActiveX
Location内输入D:\
选择OK,进入ATL Project Wizard对话框
在左上角选择Application Settings,勾选Allow merging of proxy/stub code,其它默认
选择Finish按钮
  2. 添加CFoo对象
选择菜单View->Class View,切换到类视图
在HelloActiveX上右键,选择Add->Class,弹出Add Class对话框
左边的Categories中选择Visual C++->ATL,然后右边选择ATL Simple Object,选择右下角按钮Add,弹出对话框ATL Simple Object Wizard
左边选择Names,右边的Short name内输入Foo,其它文本框内会自动填上,不用管它
选择Finish按钮,则在类视图上添加CFoo类和IFoo接口
在IFoo上右键,选择Add->Add Method,弹出Add Method Wizard对话框
Method name内输入GetValue
Parameter type内输入LONG*,Parameter name内输入value,Parameter attributes内只勾选retval
选择Add按钮,会添加一个参数,选择Finish按钮,则在IFoo接口内添加函数GetValue
在Class View类视图里选择CFoo,下面会列出成员函数名
双击GetValue函数,会切换到GetValue函数的定义处
在return S_OK;语句上面添加语句*value = 123456;
  3. 编译HelloActiveX
按F7或者选择菜单Build->Build Solution编译HelloActiveX工程,编译生成D:\HelloActiveX\Debug\HelloActiveX.dll,同时会报注册HelloActiveX.dll出错,原因是注册HelloActiveX.dll需要权限,需要手动注册
选择屏幕左下角的windows开始按钮,输入cmd,会列出查找到的文件
在cmd.exe上点右键,选择“以管理员身份运行”,在弹出的对话框上选“是”
在命令行内输入regsvr32.exe D:\HelloActiveX\Debug\HelloActiveX.dll,会提示注册成功
  4. 在IE中使用HelloActiveX.dll
在D:\下新建文件testhelloactivex.html,输入如下代码,在IE中运行,需要手动允许ActiveX控件运行,会弹出结果提示框。
  

Test HelloActiveX


Hello, ActiveX!

function init() {
    var foo = null;
    try {
        // 此处注意不是"HelloActiveX.CFoo"
        // 具体参考Resource Files->Foo.rgs文件
        foo = new ActiveXObject("HelloActiveX.Foo");
    } catch (e) {
        window.alert("new ActiveXObject failed.");
        return;
    }
    if (foo == null) {
        window.alert("foo is null.");
        return;
    }
    var val = null;
    try {
        val = foo.GetValue();
    } catch (e) {
        window.alert("foo.GetValue() failed.");
        return;
    }
    if (val == null) {
        window.alert("val is null.");
        return;
    }
    window.alert("foo.GetValue() is : " + val);
}
init();



      上面简单的介绍了ActiveX的hello world,以及如何在IE中调用。Hello World是一个好的开始,谁说不是呢。
  
本文来自CSDN博客,转载请标明出处:http://blog.iyunv.com/chenyufei1013/archive/2010/09/17/5890107.aspx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-68006-1-1.html 上篇帖子: Reporting Services 在WIN7和2008下出现“授予的权限不足,无法执行此操作。 (rsAccessDenied)”的解决办法 下篇帖子: Leap Motion Win7开发环境配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表