vb6+sp5开发的OCX打包成cab的问题?

gis_men 2003-05-12 06:52:12
不知道我这个ocx是怎么回事,下载安装一直有问题,
我专门作了一个环境相同的测试机器,包括安装vb,
才能够正常使用。

我的按照msdn中要求的顺序:
1、签名ocx文件
2、用vb的package and deployment工具打成一个包Internet package(*.cab)的包
其中包含附属的文件,修改注册表
3、签名cab文件
4、放到网页上。

包括以下的附属文件:
1、Visual Basic For Application
c:\winnt\system32\msvbvm60.dll

2、Visual Basic runtime objects and procedures
c:\winnt\system32\msvbvm60.dll\3

3、Visual Basic objects and procedures
c:\Program Files\Microsoft Visual Studio\VB98\VB6.olb

5、Microsoft Scripting Runtime
c:\winnt\system32\scrrun.dll

4、OLE Automation
c:\winnt\system32\stdole2.tlb

6、Microsoft ActiveX Data Objects 2.5 Library
c:\Program Files\Common Files\System\ADO\msado25.tlb

7、Microsoft Windows Common Controls 6.0 (SP4)
c:\winnt\system32\mscomctl.ocx

9、Microsoft Windows Common Controls-3 6.0 (SP4)
c:\winnt\system32\comct332.ocx

还有两个文件我不知道作什么用:
10、c:\winnt\system32\MSSTKPRP.DLL
11、c:\winnt\system32\msvcrt.dll

另外还要引用一个第三方的控件,要求客户机必须安装。

修改注册表,在INF文件中的[AddToRegistry]段,添加一下
HKCR,"Software\VB and VBA Program Settings\WLDD\Version","DataVer",2,"1"

问题:在一台机器上,由提示下载的弹出窗口,确定后,页面还是空的,连不能
正常显示的小方块都没有,但是注册表已经被改写,UserControl的初始化过程中
已经执行。该机器没有vb,第三方控件已经安装。
我现在怀疑,我这cab 文件没有包含全部的支持文件,但是怎么检查缺少什么文件?


另外:还有没有其他的可以将vb的ocx打包成cab的工具?有的话推荐一个。
先谢谢大家。
...全文
91 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gis_men 2003-05-15
还讨论我的问题,怎么办

我在客户机器上重新安装xp系统,以开发用机为服务器,还是用上面的问题。
我下载了一个vb6sprun.exe的vb6的sp5的运行时库安装在客户机器上面,
问题依然存在。

我对ocx控件的界面进行简化,去掉coolbar和imsgelist等控件,使该ocx只适用
Microsoft Common Controls 5(sp2)的低版本界面库。
可以使用。

但是,不幸的是,我重新安装客户机的操作系统后,同样的控件 有不能使用

请有相同经验的老大们帮帮我呀!
回复
gis_men 2003-05-13
请教
回复
SmileSkyNet 2003-05-13
要生成classid其实有一个办法,就是用InterDev,首先添加该控件到工具箱然后直接拖放到页面中就自动生成classid
回复
Maconel 2003-05-13
我去试了,挺好用的啊,我的vb是没打sp5的
是不是你的ocx的visibale=false了
回复
Maconel 2003-05-13
好的,我去试试,谢谢了
回复
gis_men 2003-05-13
用ole view等工具,我上面不是说过了的吗?
你有没有安装visual studio enterprise,在工具集中就有呀。
回复
Maconel 2003-05-13
这个我到知道,可是那个classid应该是多少怎么知道呢,好像在dreamwave里她自动会有一个,那个能用么?
回复
gis_men 2003-05-13
放在网页上这个我会。
一般,打包完成后,会有一个测试的页面里面有例子。
我贴出来你参考一下:

<OBJECT ID="UserControl1"
CLASSID="CLSID:CF4BFB90-C25C-414B-891C-4BF0939AB17A"
CODEBASE="NetAnaProj.CAB#version=1,0,0,29">
</OBJECT>

其中id是名称,由你给定,classid应该是唯一的,可以用ole view等工具看
codebase包含文件名称和版本,给出的是一个相对路径,本例子中是在网页的
同一目录下。

只需要把这一段加到<BODY></BODY>之间就可以了
回复
Maconel 2003-05-13
我也想知道,还有请问打成cab包后,要怎么用在网页上?
回复
gis_men 2003-05-13
请教
回复
gis_men 2003-05-13
难道就没有人做过类似的东西吗?
回复
gis_men 2003-05-13
请教
回复
gis_men 2003-05-12
什么其他的打包工具?
回复
tshow 2003-05-12
用其他的打包工具试一试呢,看看如何
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-12 06:52
社区公告
暂无公告