准备工作
- vs2013,并安装好qt
- iis
编写ocx插件程序
1. 创建Qt ActiveQt Server程序(QtOcxTest)
2. 打开ui文件,拖入一个QPushButton控件
双击ui文件会自动通过Qt Designer打开
3. 生成dll
引入Qt依赖库
结果如下图:
注册regsvr32
在需要打开web网页的电脑上注册QtOcxTest.dll,同目录下必须包含上图内所有dll及文件夹。
生成cap包
1. 编写inf文件
[Version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
QtOcxTest.dll=QtOcxTest.dll
[QtOcxTest.dll]
file-win32-x86=thiscab
RegisterServer=yes
clsid={f8050c1d-c960-4df0-a990-41c591a5504c}
DestDir=11
FileVersion=1,0,0,0
clsid:
2. 使用iexpress生成cab文件
8.3 格式:名称不超过8个字母,后缀不超过3个字母
然后一直下一步就ok了!
发布到iis
将cab拷贝至自己创建的一个发布在iis上的web内,然后创建一个html页面嵌入cab。
我这里使用iis默认的web程序:
将文件拷入web所在文件夹内:
ocx.html
<HTML>
<HEAD>
<TITLE>My Web</TITLE>
</HEAD>
<BODY>
<OBJECT ID="test" CLASSID="CLSID:f8050c1d-c960-4df0-a990-41c591a5504c"
WIDTH="1024" HEIGHT="768" HSPACE=0 VSPACE=0 codebase=/ocxtest.cab#version=1,0,0,0>
</OBJECT>
</BODY>
</HTML>
这就ok了,尝试用IE浏览器打开(打开失败,IE设置导致的)
IE浏览器设置
修改IE浏览器的安全设置(2个地方需要设置)
(1)
(2)
再打开网页:
成功!