博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActiveX(ocx) + DLL(wosa) + JS:实现BS硬件调用框架(一)
阅读量:6766 次
发布时间:2019-06-26

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

第一篇技术类型博客,难免用词抑或技术细节存在的错漏。

项目整体采用flex作为前端显示,spring作为逻辑层,js调用ActiveX完成硬件操作。

至于数据库远程服务器负载均衡等核心技术,暂时不提。工作重点当然放在对硬件的封装:

首先理清关于底层的结构形成的结构是,dll作为sp封装底层设备类,正如我们所知,大部分设备采用串口与计算机通信,通过封装厂商指令,可以最底层的了解设备性能。但由于指令集复杂而且需要更多的时间。当然厂商通过封装指令集而产生API是最常用的。设备底层dll通常包含异步机制(即队列保存,线程遍寻)。

API层

ActiveX: cab 或者 ocx,
   classid:作为web调用的唯一标识。返回值参数基本采用LONG和BSTR(字符类型是驱动开发过程为了满足各种语言调用时的一个重要设计条件,后面文章将仔细探讨)。

1 long COCXTEST_OCXCtrl::OpenComm()  2 { 3     // TODO: Add your dispatch handler code here 4     CString strPath;// = GetFilePath(); 5     strPath = "C:\\XFS\\OCXTEST\\OCXTEST_DLL.dll"; 6     hDll = LoadLibrary(strPath); 7     PrintLog(strPath); 8     lpOpenCom lpOpen; 9     if(hDll == NULL)10     {11         PrintLog("can't load the standard libaray");12         return 101;    //动态库为空13     }14     else15     {16         lpOpen = (lpOpenCom)GetProcAddress(hDll,"Open");17     }18     if(lpOpen == NULL)19     {20         return 102;    //函数为空21     }22     if(0==lpOpen())23     {24         return 0;25     }26     return 1;27 }

其中采用隐式调用的dll就是下面spi层的结果。

SPI层

Dll: lower layer层相对ocx更底层,主要封装基于Cen/xfs,或者范wosa规范的硬件(标准wosa规范下的代码将在后续文章中标注)
      版本号,在vc工程中insert—>resources->versions作为驱动的唯一标识需要详细标识。
      调用路径:这是dll,multi——layer常见的,显示loadlibaray
      先使用最简单的结构源代码,以展示上述问题。

extern "C" OCXTEST_DLL_API int Open(void){    return 0;}// This is the constructor of a class that has been exported.// see OCXTEST_DLL.h for the class definitionCOCXTEST_DLL::COCXTEST_DLL(){     return; }

Web层

javascript直接调用,关于响应事件及特殊参数的调用后续。

    

下篇将对API层进行稍微深入的封装并针对ActiveX中BSTR展开探讨字符类型。

转载于:https://www.cnblogs.com/beeshow00/archive/2012/07/10/2585108.html

你可能感兴趣的文章
Android 学习--ListView 的使用(四)
查看>>
基于MDK编译器 STM32与12864液晶显示程序 和电路连接
查看>>
启动apache 提示命令不存在
查看>>
汽车硬件backdoor生成器
查看>>
Windows下安装的XAMPP如何设置Apache和MySQL等服务开机自启动
查看>>
在redhat系统如何设置支持NTFS系统文件并开机自动挂载
查看>>
linux安装rzsz(lrzsz)
查看>>
Python中_,__,__xx__的区别
查看>>
Python 变量
查看>>
电动汽车锂电池容量选择
查看>>
mongodb的基本语法
查看>>
总结数值的原码、反码、补码
查看>>
Auto Layout简单应用——以编码的方式实现Auto Layout自动布局(二)
查看>>
时间≠金钱,金钱≠健康
查看>>
史上最全的Linux教程 (3)
查看>>
SDUT 小鑫の日常系列故事(六)——奇遇记 递推算法
查看>>
MySQL出现同步延迟有哪些原因?如何解决?
查看>>
Kaviza VDI-in-a-box 实验手册
查看>>
在Solaris 10编译并安装vim7.3
查看>>
Google Chrome OS 将来能取代 Windows 帝国吗?
查看>>