用VB将第三方控件打成CAB包(在WEB页面上使用)

web|控件|页面

用VB将第三方控件打成CAB包(在WEB页面上使用)
由于工作的需要,笔者需要在WEB页面上显示CAD文件(在客户机器上不装CAD)。由于时间紧迫,现写控件根本来不及,没办法在网上搜寻了一圈。找到了一个软件,大小大概有8兆左右。可以用来浏览DWG类型的文件。用了一下,发现其用的是一个DLL类型的控件,并带有两个附属的DLL文件。

如果要在WEB页面上使用控件,则控件需要打成CAB类型的包。上网找了一个打CAB包的工具,名字叫IExpress。不过如果用这个工具打包需要手工编写INF文件,INF文件的结构比较复杂,手工编写容易出现错误。想了一下,觉得VB自带的打包工具可以制作CAB文件包。不过VB的打包工具开始必须选择一个VB的工程。所以用VB建了一个跟控件名称一样的工程,编译了一下,然后用VB自带的工具进行打包,打包的类型选择Internet类型的安装包。到选择文件这一步的时候,要将多余的文件去掉,因为这个第三方控件不是VB编写的,所以根本不用带VB的运行库。将第三方控件的主控件DLL和两个附属的DLL都加到包中,然后开始打包。

包打完之后写了个测试页,在本机上试了一下没有问题(因为本机已经安装了控件),所以在其他的机器上测试了一下,不能正常安装控件,页面上显示一个红叉。查看IE临时文件夹下的控件安装日志文件,内容显示控件不能正常注册。到网上查找了一些资料,没有找到原因。后来用VC自带的Dependency Walker工具查看了一下控件的DLL,发现里边还包含了另外三个DLL,分别为:msvcr71.dll、msvcp71.dll、mfc71.dll。将这三个文件也加进了包里,测试之后,一切正常。

在WEB页面上使用控件的脚本如下:

<HTML>

<HEAD>

<TITLE>BravaACX.CAB</TITLE>

</HEAD>

<BODY>

<!-- 如果这页上的任何控件需要授权,您必须

创建一个授权包文件。 运行 LPK_TOOL.EXE 来创建

要求的 LPK 文件。 LPK_TOOL.EXE 将从 ActiveX SDK 中找到,

http://www.microsoft.com/intdev/sdk/sdk.htm. 如果您有 Visual

Basic 6.0 CD, 您可以在\Tools\LPK_TOOL 目录下找到它。

下面是对象标记的例子:

<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">

<PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">

</OBJECT>

-->

<OBJECT ID="ctlBravaACXView" CLASSID="CLSID:1BE73243-A85F-4385-939D-14D4845A286A"

CODEBASE="BravaACX.CAB#version=5,1,0,5" width="60%" height="60%">

<param name="Filename" value="db_samp.dwg">

</OBJECT>

</BODY>

</HTML>

打包CAB控件的INF文件内容为:

;BravaACX.OCX 的 INF 文件

;DestDir 可以为 10 则在 Windows 目录,为 11 则在 Windows\System(32) 目录,或为空则在 Occache 目录。

[version]

signature="$CHICAGO$"

AdvancedINF=2.0

[DefaultInstall]

CopyFiles=install.files

RegisterOCXs=RegisterFiles

[RInstallApplicationFiles]

CopyFiles=install.files

RegisterOCXs=RegisterFiles

[DestinationDirs]

install.files=11

[SourceDisksNames]

1=%DiskName%,BravaACX.CAB,1

[Add.Code]

BravaACX.dll=BravaACX.dll

Autorec.dll=Autorec.dll

BACXView.ini=BACXView.ini

Dwg2DL.dll=Dwg2DL.dll

myrdrv.ini=myrdrv.ini

MFC71.dll=MFC71.dll

msvcr71.dll=msvcr71.dll

msvcp71.dll=msvcp71.dll

[install.files]

BravaACX.dll=BravaACX.dll

Autorec.dll=Autorec.dll

BACXView.ini=BACXView.ini

Dwg2DL.dll=Dwg2DL.dll

myrdrv.ini=myrdrv.ini

MFC71.dll=MFC71.dll

msvcr71.dll=msvcr71.dll

msvcp71.dll=msvcp71.dll

[SourceDisksFiles]

BravaACX.dll=1

Autorec.dll=1

BACXView.ini=1

Dwg2DL.dll=1

myrdrv.ini=1

MFC71.dll=1

msvcr71.dll=1

msvcp71.dll=1

[BravaACX.dll]

file-win32-x86=thiscab

RegisterServer=yes

clsid={1BE73243-A85F-4385-939D-14D4845A286A}

DestDir=11

FileVersion=5,1,0,5

[Autorec.dll]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=1,3,0,43

[BACXView.ini]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=0,0,0,0

[Dwg2DL.dll]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=1,3,0,47

[myrdrv.ini]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=0,0,0,0

[MFC71.dll]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=7,10,3077,0

[msvcr71.dll]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=7,10,3052,4

[msvcp71.dll]

file-win32-x86=thiscab

RegisterServer=no

DestDir=11

FileVersion=7,10,3077,0

[RegisterFiles]

%11%\BravaACX.dll

                           作者:崔占民

                     EMAIL:CUIZM@163.COM

时间: 2024-08-02 22:39:53

用VB将第三方控件打成CAB包(在WEB页面上使用)的相关文章

vb进度条控件个性使用

相关文章: 用VB做个漂亮的进度条 源代码压缩包中包含ccrpProgressBar控件 简介 VB的第三方控件ccrpProgressBar是一个进度条的控件,可以有多种形态供选择.比起VB 中自带的进度条控件ProgressBar更有个性. 使用实例: 用ccrpProgressBar制作各式各样的进度条 在VB中自带了一个进度条控件ProgressBar,但功能简单.我向大家推荐一个VB的第三方进度条控件ccrpProgressBar.该控件功能强大,有多种形态供选择,而且只需要简单的设置

VB中用AresButtonPro控件制作漂亮按钮

编者:开发网站一般都提供第三方控件下载,这些控件包括了开发的各个方面,今天我们要推荐的是一个界面设计控件:AresButtonPro.如果您想参与我们的活动,请给我写信. 源代码包中包含AresButtonPro控件 使用方法: 对广大编程爱好者来说,不仅希望自己写出的程序实用.性能稳定,更希望软件的界面豪华.漂亮.而拥有漂亮的图形按钮能使整个界面看起来更美观,也更能吸引大家的眼球.但是用编程实现并不太容易做到.而网上关于按钮的第三方控件数不胜数,让大家一时难以选择.这里,我向大家推荐vb的第三

VB中利用第三方控件实现QQ垂直菜单

编者的话:经过一个月的前期准备,第三方控件推荐今日正式开始,今天推荐的控件是由网友伍学慧提供的,小编在此代表所有网友对他表示感谢. 源代码包中为VerticalMenu控件,请下载后解压测试 使用示例: QQ是我们经常使用的软件之一.相信大家对QQ那样的界面再熟悉不过了.在这,我向大家推荐一个在VB中能轻松实现这种类似于QQ垂直菜单的第三方控件VerticalMenu. 下面我就结合实例(开发环境为Visual Basic 6.0,windowsXP)讲一下运用VerticalMenu控件开发程

vb.net引用第三方控件

问题描述 我用vb.net写得程序中引用了重写的datagridview控件,主要是实现了datagridview和treeview结合,使得datagridview首列是treeview格式的,我的电脑是安装的XP系统,结果我的程序放到客户那边打不开,点击exe文件根本就没反应,我怀疑是第三方控件在那里不能用,不知道是什么原因啊,客户那边是2003的系统 解决方案 解决方案二:只有自己清楚用了什麽第三方控件解决方案三:引用1楼crackdung的回复: 只有自己清楚用了什麽第三方控件 我的意思

VB中利用第三方控件实现软件在线升级

大家对金山毒霸.瑞星等杀毒软件的在线升级一定不陌生吧?它们可以利用在线升级程序进行在线升级,无需用户访问网站下载.这样的功能的确对于使用者来说是十分方便的.那么,您是否也想为您的软件添加方便的在线升级的功能呢?下面介绍一个第三方控件,能够帮你非常容易地就实现. bkDLControl控件一个可以快速实现在线下载的控件,它在下载的同时通过进度条显示进度.你可以编写当其下载完成后的事件,这样我们就可以轻松达到在线升级的目的. 要了解该控件强大便捷的功能,下面我们就通过一个实例来讲解. 第一步:首先启

timer-DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用

问题描述 DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用 用户控件中使用的代码如下:/asp:ScriptManager /asp:Timer /asp:Literal /asp:UpdatePanel 为什么到事件刷新的时候会报 " Sys.WebForms.PageRequestManagerParserErrorException: 未能分析从服务器收到的消息." 这个错误呢?请指教一下 解决方案 asp不会,jsp会一点,祝你好运!

asp.net 怎么实现多张图片一起上传 有没有什么第三方控件可供使用

问题描述 asp.net 怎么实现多张图片一起上传 有没有什么第三方控件可供使用 asp.net 怎么实现多张图片一起上传 有没有什么第三方控件可供使用 解决方案 http://blog.163.com/tianshenglongchang@126/blog/static/16462850320107724827852/ 解决方案二: swfupload,uploadify,不行你用html5的input file控件,设置multiple就可以同时选择多个文件进行上传 解决方案三: http:

如何用VB写安全控件

安全|控件 总述 本文叙述了如何在VB中实现控件的IobjectSafety接口,以标志该控件是脚本安全和初始化安全的.VB控件默认的处理方式是在注册表中注册组件类来标识其安全性,但实现IobjectSafety接口是更好的方法.本言语包括了实现过程中所需的所有代码. 请注意,控件只有确确实实是安全的,才能被标识为"安全的".本文并未论及如何确保控件的安全性,这个问题请参阅Internet Client Software Development Kit (SDK)中的相关文档 &quo

VB中抑制控件的弹出菜单

在VB的某些控件如文本框(TEXTBOX).组合框(COMBOBOX)等上单击鼠标右键都会有缺省的弹出菜单,这些缺省弹出菜单,在某些情况下我们并不需要或者根据实际情况需要使用自己的弹出菜单,那么如何抑制控件的弹出菜单呢?我们需要检测控件的鼠标右键单击消息,然后什么事也不做或者使用自己的弹出菜单,这需要编写一个钩子函数来完成.下面以抑制文本框的弹出菜单为例说明实现方法. 为窗体添加一个模块,在模块中编写钩子函数: 首先声明使用的API函数及常量, Declare Function CallWind