ActiveX(ocx) + DLL(wosa) + JS:实现BS硬件调用框架(二)

前言:计划永远赶不上变化,项目刚有进展就被派去出差,导致三个周封装没有进展,马山验收了,快马加鞭。
上一篇仅简单的介绍了整体项目结构从本篇开始对具体的实现及我项目中出现的重点数据结构,算法及文档中注意事项重点分析。
继续上篇,从API层说起。

正文:ActiveXFS规范是真实存在的,跟CEN/XFS也就是我们所熟知的wosa规范的知名度相差很多,CEN/XFS规范可以达到ATMC上层程序和厂商硬件驱动分别由不同的公司编写,实现跨平台的目的。ActiveXFS当然不行,他是什么其实就是ActiveX控件,每种控件对应一份ActiveXFS规范,指明该种控件的对外接口,该接口是基于微软的COM技术的IDL接口。对就是很多.net(C#、VB),web开发人员常用的COM控件。他其实是wosa的一个附属品,他的意义在于那些上层不是直接用C/C++编写,无法直接调用XFS MANAGER提供地API,无法处理特定的内存信息的上层开发。不像CEN/XFS俨然成为行业基础规范,ActiveXFS规范因为响应的公司寥寥,2000年的1.0后也没有推出新的版本出来,其前途渺茫而又微妙。其实部分公司内部是也是有基于其的规范并根据市场不断升级的。只要你需要用ActiveX控件来封装CEN/XFS的API接口,第一个应该考虑的是参考ActiveXFS规范,或者直接按照规范来编写自己的控件,ActiveXFS规范还是有其存在的价值意义的,感谢为之作出贡献的人。因为我们项目上层是Flex用js脚本,因而ActiveX是不二选择.....

所有封装的核心莫过于属性,方法,参数,事件。由于上层语言的限制,参数是ActiveX层封装的一个重点。

JSON:不得不提,百度名片是这样介绍的JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。有两个主要结构一,“名称/值”对的集合,我们理解成对象属性或者哈希表,二,值的有序列表,更容易理解成数组。javascript封装后的函数都使用json格式,这样可以让flex编程中调用js的统一化和动态化。而我们在封装OCX时的输入参数是json对应的字段名。

BSTR:是“Basic STRing”的简称,MS在COM/OLE中定义的标准字符串数据类型。也就是主要用于COM中,跟char*,LPSTR,CString的广泛应用还有差距,我们只是采用com的系统函数AllocSysString()函数将CString值转成需要导出的BSTR,毕竟CString更好用。

BSTR COCX_MODELCtrl::cardGetInfo(long iInfoType) 
{
    
    CString strResult;
    CString rt = "^RT";
    CString wp = "^WP";
    CString lp = "^LP";
    VersionInfo m_version(szModule) ;
    //get dll file version
    if(1==iInfoType)
    {
        m_version.GetBCVersion(strResult);
    }
    //get dll company name
    else if(2 == iInfoType)
    {
        strResult = m_version.GetCompanyName();
    }
    //get dll comments
    else if(3 == iInfoType)
    {
        strResult = m_version.GetComments();
    }
    strResult = wp + strResult;
    return strResult.AllocSysString();
}

ActiveX层需要调用XFSManger完成对SP的调用才能实现项目目的。下一篇先从一个简单的MFC程序入手,演示API调用的过程,并将其加入到ActiveX层中。

转载于:https://www.cnblogs.com/beeshow00/archive/2012/08/09/2630447.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值