博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActiveX开发知多少?
阅读量:6527 次
发布时间:2019-06-24

本文共 1072 字,大约阅读时间需要 3 分钟。

由于前段时间要为一个项目定制一个电子地图+视频监控系统,考虑到公司现有的开发资源(C#项目组)及已经完成的下层业务框架(C++实现),选择了.net技术结合ActiveX来实现需求。由于下层业务框架是我编写的,所以开始了自己的编写Activex插件之旅。

按照我的习惯在接触一个新技术时并不会匆匆开始上手实现,而是在了解基本原理之后再着手。所以通过各种百科了解了一些关于ActiveX的背景和使用场景。又深入其背后的COM技术浏览了潘爱民老师的这本书,了解了一下Activex背后的思想。于是乎在理清了ActiveX的基本脉络后开始了业务插件的编写。

ActiveX插件最基本的两个用法:方法接口和事件接口

方法接口是这么一个过程,调用——>等待结果返回。可是一个同步方法接口再结合js的单线程特性在界面端体验方面却有一个致命缺陷,在等待这个接口返回的时候整个界面会僵死,不能响应任何动作。

异步方法接口虽然能立马返回,但又如何来获取最终结果呢?刚好,事件接口可以解决这个问题,我们可以在前台注册这个事件,然后由ActiveX后台来响应这个事件,从而前台可以获取正确的结果,类似于我们熟悉的回调函数。 推荐阮一峰的这篇文章来了解下以上我说的两种情况。

就这么简单?可是现实仿佛并不是如此,我们要把一个接口写成异步接口,肯定要在接口内部开启一个线程来执行耗时较长的操作,然后在操作完成后响应事件通知上层获取数据。这里有个坑,你要是在所启线程中去响应事件接口,前台是无法响应的。怎么办呢?解决方案在这里。

备忘录

“爱遗忘这人类天性”也绝对是我们程序员的一个杀手锏,不说别的,影响工作效率!我一个月前写完了几个方法接口、事件接口后昨天因为需求更改再写时居然忘了IDE的快捷途径了,求助了google大神后搞定,所以我得为几个点建一个备忘录。

  • 备忘录1:如何在工程里添加方法、事件接口

    在这货这里添加方法:

    在这货这里添加事件:

    (注:如提示找不到事件接口的错误,自己手动在相应位置加上就好)

  • 备忘录2:ActiveX插件测试调试的两大利器

    TstCon32.exe,Microsoft ActiveX Control Pad;

  • 备忘录3:js脚本调用方法,事件的代码示例

这几点可以说明问题

另外还有些ActiveX空间的签名打包类的知识,很多前端的文章都有介绍,我就不在这献丑了。

本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/1325664如需转载请自行联系原作者

yaocoder

你可能感兴趣的文章
4、动态代理
查看>>
Loj #6073.「2017 山东一轮集训 Day5」距离
查看>>
我的TCP/IP学习笔记
查看>>
shell--字符串的截取变量子串串
查看>>
Cas_个人理解
查看>>
UISearchController
查看>>
梦断代码阅读笔记02
查看>>
轮毂电机光电增量编码器的ABZ信号详解
查看>>
SpringBoot整合Swagger测试api构建
查看>>
通过Gradle来下载依赖的jar包
查看>>
CentOS7下Django安装
查看>>
路由配置系统(URLconf)
查看>>
TextBox Template
查看>>
Linux MySQL 储存中文失败简单解决办法
查看>>
求最大值及其下标
查看>>
洛谷——P1330 封锁阳光大学
查看>>
css选择器
查看>>
zabbix-agent配置文件说明
查看>>
Ros学习——创建程序包
查看>>
linux系统配置之bash shell的配置(centos)
查看>>