最近接手银行卡读卡任务,由于应用于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.ocx
echo 注册成功
pause
添加完成后保存,执行!(或者在该目录shift + 右键-->在此处打开命令窗口 cmd模式运行Regsvr32 test.ocx)
e、写测试页面,获取CLSID ,每一个ocx文件一旦创建都是固定的只有一个。
两种方式:
方式一:VB点击运行使用现存的浏览器运行,打开后右键-->查看源
方式二、将ocx拖入到GetComComponentCLSID.exe 工具(百度网盘 提起码:8jb3)获取
f、新建test.html页面添加一下代码
打开测试页面如下(注:使用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,如下:
test
d、点击运行效果如下
3)、测试调用动态库dll方法,使用c++写一个dll动态库,并在vb中调用动态库中的方法
a、测试使用vb调用dll中的方法,先使用c++新建一个dll文件
确认
下一步
完成,新建项SumDll.h
添加代码:
#ifndef SUMDLL_H
#define SUMDLL_H
extern "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页面,添加代码如下
f、完成后运行效果如下:
测试源码:vbtest.rar 链接:https://pan.baidu.com/s/1In5oX6IjCbOc2uPFxEZ-rg 提取码:dc75