最近接手银行卡读卡任务,由于应用于C/S框架的html页面中,使用IE浏览器打开,利用IE的activex控件采用vb开发集成OCX。由于对该项目属性以及刚接触OCX封装,期间遇到了很多问题。本文章主要讲问题记录下来供日后回顾。

一、vb环境搭建

安装包百度网盘:vb6.0qyjtzwb_xpgod  提取码:59d2

学习文件百度网盘:链接:https://pan.baidu.com/s/1cB-WVIv4qTNkDpmOqtyNFw  提取码:tcb2

二、开发简单的OCX

1、新建ActiveX控件

2、添加功能及方法

1)、使用工具栏添加一个按钮,点击按钮打印出当前时间

a、将工具栏中的按钮拖入工程_UserControl1中

b、双击按钮添加对应方法

Private Sub Command1_Click()MsgBox (Now())
End Sub

c、保存,封装成ocx

保存:

封装成ocx:

文件-->生成xxx.ocx

到目前为止ocx已经封装好了,接下来开始在页面是调用。

d、注册ocx,注册分为两种方法一种是使用Regsvr32 text.ocx注册,另一种是将test.ocx文件放如对应的System目录下,32位放入C:\Windows\System32目录下 64位放入C:\Windows\SysWOW64目录下

本文采用第一种方式:在test.ocx所在目录下新建install.bat文件,编辑文件添加以下代码:

%~d0
cd %~dp0
echo 卸载测试OCX控件
Regsvr32 -u test.ocx
echo 注册测试OCX控件
Regsvr32 test.ocxecho 注册成功
pause

添加完成后保存,执行!(或者在该目录shift + 右键-->在此处打开命令窗口  cmd模式运行Regsvr32  test.ocx)

e、写测试页面,获取CLSID ,每一个ocx文件一旦创建都是固定的只有一个。

两种方式:

方式一:VB点击运行使用现存的浏览器运行,打开后右键-->查看源

方式二、将ocx拖入到GetComComponentCLSID.exe 工具(百度网盘 提起码:8jb3)获取

f、新建test.html页面添加一下代码

<OBJECT classid="clsid:10BE8624-D817-40E0-A5A3-8AF6C377D103" width="400px" height="200px"> </OBJECT>

打开测试页面如下(注:使用ie打开)若提示如下点击允许:

点击是

最后页面完成效果如下(如果点击以上两步还是一片空白则需配置IE设置的ActiveX选项):

IE设置的ActiveX选项:

internal选项-->安全-->受信任的站点-->自定义安全级别

确认后刷新页面即可。

2)、写一个方法,当调用该方法传入一个姓名作为参数时,返回hello + 参数 +  !!

a、测试二在原来的基础上进行添加不在重新。VB项目添加如下代码:

Public Function helloWorld(ByVal nama As String)helloWorld = "Hello " & nama & "!!"End Function

b、保存。重新生成ocx,重新生成ocx后,需重新运行install.bat文件进行注册

c、修改下html,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
</head>
<body><OBJECT  id="ActiveXId" classid="clsid:10BE8624-D817-40E0-A5A3-8AF6C377D103" width="400px" height="200px"> </OBJECT><hr/><input type="text" value="张三" id="name" /><input type="button" value="测试VB方法" onclick="hello()" /><script type="text/javascript">var abc =document.getElementById("ActiveXId");function hello(){var name = document.getElementById("name").value;var res = abc.helloWorld(name);alert(res);}</script>
</body>
</html>

d、点击运行效果如下

3)、测试调用动态库dll方法,使用c++写一个dll动态库,并在vb中调用动态库中的方法

a、测试使用vb调用dll中的方法,先使用c++新建一个dll文件

确认

下一步

完成,新建项SumDll.h

添加代码:

#ifndef SUMDLL_H
#define SUMDLL_Hextern "C" int __declspec(dllexport) add(int x, int y);#endif

新建SumDll.cpp

添加代码:

#include "SumDll.h"int add(int x, int y)
{return x + y;
}

保存后,右键项目-->生成

成功后再该目录下,拷贝SumDll.dll文件到对应的System目录下,32位放入C:\Windows\System32目录下 64位放入C:\Windows\SysWOW64目录下

b、VB工程添加,右键工程-->添加-->添加模块

打开,添加以下代码

Option Explicit
Public Declare Function add Lib "SumDll.dll" (ByVal a As Integer, ByVal b As Integer) As Integer

c、ctrl+s 保存。添加方法如下

'测试调用动态库dll
Public Function testDllAdd(ByVal a As Integer, ByVal b As Integer)testDllAdd = add(a, b)End Function

d、保存,生成test.ocx,生成ocx后需重新双击运行install.bat文件进行注册

e、test.html页面,添加代码如下

<hr/><input type="text" value="32" id="intA" /><input type="text" value="4" id="intB" /><input type="button" value="测试VB调用Dll" onclick="testAdd()" /><script type="text/javascript">function testAdd(){var intA = document.getElementById("intA").value;var intB = document.getElementById("intB").value;var res = abc.testDllAdd(intA,intB);alert(res);}</script>

f、完成后运行效果如下:

测试源码:vbtest.rar  链接:https://pan.baidu.com/s/1In5oX6IjCbOc2uPFxEZ-rg  提取码:dc75

VB6银联读卡之旅(一)__简单ocx封装应用相关推荐

  1. VB6银联读卡之旅(二)__55域获取流程及相关注意

    银行卡读卡涉及相关APDU命令发送.网上有很多相关博客进行了详细说明,这里就不在赘述.本文主要讲55域获取流程及本人联调时遇到的相关问题.在智能卡读取使用方面本人也属于初学者,其中如有疑问或表述不正确 ...

  2. 银联IC卡读卡流程详解--读卡器与卡交互指令

    最近因研究了下银联借记/贷记应用卡片规范,发现网上可参考资源较少,于是萌生了写下这篇文字的想法,希望可以帮助到有需要的兄弟姐妹,有描述不清晰或者有错误的地方欢迎指正. 下面进入正题,测试使用的卡是招商 ...

  3. wcopy nfc pro智能读卡工具软件_手机NFC复制小区用的门禁卡

    我们说一说目前的门禁卡到底有哪些类型呢?门禁卡一般分为:ID卡和IC卡.而EM卡.M1卡.CPU卡等等,都是这两种卡的细分.它们能够开门,都是基于RFID感应的原理来实现开门的.  我们看一张图,在这 ...

  4. 125KHz 100cm ID 读卡电路_7 个别出心裁的树莓派优质项目集锦(完整代码+电路设计资料)...

    电路城有很多优秀的设计项目方案,一直深受广大电子工程师的欢迎,但随着时间和为数众多的内容资源更新,很多优质的资源沉下去了,为激活以往受欢迎的电路项目方案,我们对此按主题进行整理呈现出来,以飨读者.本期 ...

  5. MF RC522读卡芯片手册

    MF RC522读卡芯片手册 http://www.docin.com/p-1684819035.html https://wenku.baidu.com/view/2510e4e3590102020 ...

  6. python识别图像数字诊断模块_opencv+python 机读卡识别

    长按上图识别二维码报名济南源创会 摘要: 通过随意一张机读卡的照片,识别其中选择题题号,选项,以及相关数字识别.这个系列的解决方案不止一种,调参的方法也是各种各样,反正能够满足需求就极好了 1.预处理 ...

  7. 读卡距离和信号强度两方面来考虑

    选择物联宇手持终端机的时候,你可以参考以下几个原则: 选择行业需要应用功能,能有效控制好预算. 屏幕界面需要高清晰的,选用分辨率较高的能更好的支持展现. 按照项目所需求的来分析,需要从读卡距离和信号强 ...

  8. 125KHz 100cm ID 读卡电路_摄影人最好用的读卡器推荐

    作为相机必备配件,读卡器是所有摄友都一定要有的.但是随着技术的进步,多功能读卡器越来越强大,到底如何选择一款合适的读卡器,一次性升级换代?老刘给你推荐几款最好用的. 首先,我们要说电脑读卡器,毕竟稍微 ...

  9. opencv+python机读卡识别

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 1.预处理 这次的机读卡识别项目来源暑期培训,主要包括内容一张手机拍摄的机读卡位置定位,识别其 ...

最新文章

  1. 人工智能技术给教育行业带来哪些主要影响?
  2. OCP考试052考试,新的考题还有答案整理-23题
  3. 大师之路-GoLive 视频教程
  4. 很久以前的C语言笔记
  5. Tensorflow Serving Docker compose 部署服务细节(Ubuntu)
  6. Python练习:期末测评
  7. 微软重新设计 Edge for Android 的用户界面
  8. 计算机科学与技术大学教程,21世纪高等学校计算机科学与技术规划教材:大学计算机基础教程...
  9. 安卓QQ协议抓包教程
  10. 测量学5_测量误差理论的基本知识
  11. 吃欢天面皮的26种吃法,中国人的福音!
  12. 实例解读模拟电子技术完全学习与应用
  13. 测肤API+应用开发,自助打开线上AI测肤
  14. HashMap底层扩容机制是2倍的原理
  15. FPGA:偶分频、奇分频
  16. 六旋翼无人机动力学建模与仿真搭建
  17. OUC2022秋软件工程第14小组作业
  18. 融云开发者沙龙(济南站)活动精彩回顾
  19. 苹果手机用计算机魔术密码,计算器魔术#展示特定文字#魔术软件#魔术教程#iPhone#iOS...
  20. matlab:分析控制系统稳定性综合实例

热门文章

  1. 花店商城Flower Shop网站前端HTML页面模板源码
  2. java中文字符转换,Java中文字符转换拼音
  3. ZXing 生成二维码模糊
  4. Arcgis栅格裁剪批处理工具
  5. 微信开发者工具更换默认用户存储目录方法
  6. 区域生长算法 python代码_区域生长Python
  7. android 右边抽屉,Android实现右边抽屉Drawerlayout效果
  8. Word编辑技巧(图片、文本框居中)
  9. 原创】OllyDBG 入门系列(一)-认识OllyDBG
  10. MATLAB-最大值与最小值