- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在ActiveX控件中如何动态调用DLL函数
原创: 马云冬(xacn)
如需转载请与作者联系
源程序下载
??? 刚到公司不久,接到领导的下达的一个任务,就是把对POS机操作功能封装在ActiveX控件中,在IE中调用。这样就能实现在IE上直接对POS机进行操作。而我要封装的这个动态库,厂家只提供了一个单的动态库和一百多字的说明,也就是说明一下动态库中有机个函数和其对应的参数。也就是厂家就连动态库对应的头文件也没有提供。
??? 接到这个任务后,我第一想到的是用VC的ATL来实现它。你问我为什么要用ATL也不用别的,如CB、Delphi之类的。我只能说我觉得写ActiveX还是用VC好;况且还要对硬件进行操作,这样一来当然是用VC了。别说我没提醒你,用CB、Delphi之类的有可能会出现预想不到的惊奇。。。。
??? 现在让我带着进入正题吧!先用ATL COM AppWizard生成一个名叫PosActiveX的工程,生成时系统会问你是生成DLL还是EXE。当然是DLL的了。生成好后加入一个接口叫IPosCtrl,当然了要在Web上用,所以生成的接口一定是要小所以选择Lite Control的。你可别问我怎么加入,如果这都不会,那我写的这文章是不适合你看的。所以等你学会加入接口后再看。接口加好后,我就要实现方法了。首先用接口一般都要对其进行初始化。所以加入一个叫Init(short nCom)的接口方法,该方法完成加载DLL和DLL中的功能函数,还有就是打开对POS机进行操作的COM口;还有一个是修改POS机的时间的方法叫ModifyPosDT(BSTR bstrDT);还有个是清空POS机中数据的方法--EmptyPos()。最后,当你不想用时就要关闭所打开的COM口--Quit()。在生成接口IPosCtrl时同时会生成CPosCtrl类。我有个习惯,就是我一般是把实现方法都写在类中,而接口只时输出该类中你想输出的方法。所以在类中我就写了以下几个方法:
???? InitDll()加载DLL库和其中的功能函数;
???? ExitDll()卸载DLL库,用完后不卸载是在占用内存。所以它是少不了的。
???? SetPosDateTime(char * pchDT)设置POS机的时间。
???? ClearPos()清空POS机中的记录。
???? 在类中我就写了这几方法了。
??? 在说一下我要输出的接口方法有:
??? Iint(short nCom)初化接口,为调用做准备。
??? Quit()退出程序时,调用它退出接口调用。
??? ModifyPosDT(BSTR bstrDT)设置POS机时间。
??? EmptyPos()清空POS机数据。
??? 完了就这么多。
??? 现在来看看我的源程序吧!
?? // PosCtrl.cpp : Implementation of CPosCtrl#include stdafx.h#include PosActiveX.h#include PosCtrl.h/////////////////////////////////////////////////////////////////////////////// CPosCtrl/////////////////////////////////////////////////////////////////////////////// Police.dll所用到的常量定义/////////////////////////////////////////////////////////////////////////////#define Com_UpRecord 1#define Com_UpPoliceLen 2#define Com_UpSimpleDataLen 3#define Com_UpSimplePunishLen 4#define Com_UpGeneralDataLen 5#define Com_UpGeneralPunishLen 6#define Com_EmptyPolice 7#define Com_EmptySimpleData 8#define Com_EmptySimplePunish 9#define Com_EmptyGeneralData 10#define Com_EmptyGeneralPunish 11#define Com_DownRecord 0x80#define Com_DownStreetCodeLen 0x81#define Com_DownBlackListLen 0x82#define C
您可能关注的文档
- 数字电路 课程自学考试大纲.doc
- 中南财经政法大学南湖校区平面图.doc
- 转 《学前教育》读后感之 三.doc
- 第五章密钥管理与数字证书.ppt
- 关于《女人世界》副刊出版合作协议.doc
- 润滑脂在轴承中的润滑作用.doc
- 做最有用的好员工.doc
- 本章案例讨论题参考解答.doc
- 第7章 AS3.0显示编程.ppt
- 第9章 微型计算机控制系统应用实例.ppt
- 部编版六年级下册道德与法治 期末测试卷附参考答案【完整版】.docx
- 部编版六年级下册道德与法治 期末测试卷附参考答案【巩固】.docx
- 部编版六年级下册道德与法治 期末测试卷附参考答案【培优】.docx
- 部编版六年级下册道德与法治 期末测试卷附参考答案【a卷】.docx
- 部编版六年级下册道德与法治 期末测试卷精品(满分必刷).docx
- 部编版六年级下册道德与法治 期末测试卷附下载答案.docx
- 部编版六年级下册道德与法治 期末测试卷附参考答案【实用】.docx
- 部编版六年级下册道德与法治 期末测试卷附参考答案ab卷.docx
- 部编版六年级下册道德与法治 期末测试卷精品(有一套).docx
- 部编版六年级下册道德与法治 期末测试卷精品(模拟题).docx
最近下载
- 2024年人大常委会工作报告讨论发言稿三篇.docx VIP
- [工程科技]TMS320F28027中文版实验教程.pdf
- 北京市石景山区2023-2024学年高一上学期期末生物试题 Word版含解析.docx
- 北京市石景山区2024_2025学年高一数学上学期期末考试试题含解析.doc VIP
- 图书馆运营管理服务投标方案.doc
- 新时达AS380全系(380、380B、380C、380D、380S)快捷调试方发.docx
- 北京市西城区师范大学附属中学2024_2025学年高一语文上学期期末考试试题含解析.doc VIP
- 数学必修41.1.1任意角课件PPT课件一等奖新名师优质课获奖比赛公开课.pptx
- 小学考查学科评价方案.pdf
- 巴塘卓帆水泥2500td熟料新型干法水泥生产线项目施工组织设计.doc
文档评论(0)