我开发activex的经验

   最近公司的新产品需要在网页中使用,需要改进软件的操作模式.由于在网页中操作硬件设备,对我来说是没有接触的领域,所以在这段时间内主要进行了这方面的搜集.

   首先是查找对硬件的访问,发现在CSDN上有很多的高手,一致的推荐Activex和COM组件的方式.后来发现,这两种方式的更多用途是在不同语言之间的模块化,当然我现在是不怎么使用拉,在后来进行JAVA语言调用C++的DLL的时候还用到了JNI的技术,后来分析一下,实际上就是一个连接库的调用,只不过对端口的使用进行了定义,包括标准话的内存地址等等.

   好了,确定使用Actinex,接下来就开始"蛮干".我直接使用MFC的Activex 的方式,按照步骤进行了一个简单的activex 的制作.:

   MFC Activex Control Wizard  作为引导,实际上就是象产生对话框一样的简单,只不过中间的某些步骤需要必要的人工干预,比如是 自定义函数名称 参数类型和个数 以及输出类型(返回值)等等. 这样的结果就是,当产生一个activex之后,它的入口就确定了,能不能再修改呢? 这是一个问题.

   起个名字叫:Client_page,于是产生的工作区里面就存在了这样的文件:

         Client_page.cpp:里面有InitInstance,哦,是初始化了,还有两个比较重要的函数,STDAPI DllRegisterServer(void),STDAPI DllUnregisterServer(void),就是传说中的注册函数和注销函数了.一般的时候我没有修改它们,不敢啊.而且看了代码,函数里面并没有实现的方法,属性或者事件,就更不用关心了.

         Client_page.def:发现它象DLL的接口一样,定义了标准的接口函数,但是也没有我所定义的函数接口,看来也是标准了,不修改.  

         Client_page.odl:一大驼的数字,象UID一样,一查,就是传说中万中无一从来不会重复的CLSID,在程序里面是UUID,好了,里面有三个,我该使用那一个呢? 看看说法,

//  Primary dispatch interface for CClient_pageCtrl  :应该是主通信接口

 //  Event dispatch interface for CClient_pageCtrl  : 事件接口

//  Class information for CClient_pageCtrl     :本控件类的信息,就是类ID了,难道是它,接下来在网页中使用了,果然就是它OK 

 

         Client_pageCtl.cpp:

         终于看到自家人了,我的通信函数接口就在这里,而且已经写好了,哇哈哈.我写,我写.我写写...慢着,要先实验一下.  于是先创建一个简单的网页,在网页里面添加一些使用代码: 

<object classid="clsid:40AE0DC8-D84C-4C75-AC8C-B9FDDC7F1E00"
codebase="Client_page.ocx#version=1,0,0,1"
id = Client_page
align=center>
</object>

   运行之后,果然啊,弹出我的对话框,OK.写吧,代码是最简单和枯燥的事情了.

         Client_pagePpg.cpp:看到DoDataExchange,恩 和对话框一样,应该没有我的事情了.

   结果呢,顺利的进行了与硬件打交道的通信.

 总结:  其实使用MFC的方式很简单,按照步骤来就型了,关键是了解这个机制,在完成ACTIVEX之后,就开始查讯:ActiveX 在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的ActiveX控件。后者是指从VBX发展而来的,面向微软的Internet Explorer技术而设计的以OCX扩展名OLE控件.看来我的就是OLE拉.

      Internet Explorer和一些其他应用程序同时支持ActiveX Documents接口规范,允许在一个应用程序中嵌入另一个支持这个规范的应用程序。很多应用软件,例如微软的Microsoft Office系列和AdobeAcrobat Reader都实现了这个规范。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值