VB安装程序打包问题,不知少了什么文件?
我用VB6.0做的程序,使用了DATA控件和DAO,安装程序制作用的是Setup factory6.0。在一台只装有WinXp系统的电脑上安装后运行显示:
Data Access Error
Run-time error '91 '
Object variable or With block variable not set
我想可能是打包时少了什么文件,便使用VB自带的安装打包工具打了下包,查看了一下其提取的所有的.dll文件和.ocx文件,重新在Setup factory中添加(大约有二十多个吧),重新安装后故障依旧,只不过成了中文,如下:
数据访问错误
运行时错误 '91 '
未设置对象变量或 With block 变量
真是不知道什么原因,我想可能是关于我程序中调用了Access数据库的相关文件没有打包全,可是我在这台电脑上安装了Office后故障依旧,又安装了mdac、jet40后仍然不起作用。
我想了一下,我的这个程序是以前编的,当时也是用Setup factory做的安装程序曾在只装有Windows系统的电脑上测试过是可以在安装后正常运行的。现在只是把此程序修改了一下,整体没有多大变化,只不过添加了几句代码调用了API函数来实现打开系统“浏览文件夹”对话框和更改系统分辨率的功能。所以我专门查看了一下API函数的.dll文件,一并打包进去,但是——故障依旧!
我现在是真的没辙了,请高手指教!谢谢!
[解决办法]
建议在那台机器上装上VB,看看源码怎样运行,在哪断了
这种错误不好调试,可能跟机器也有关系,我遇到过一次向上面的调试了,源码里有错,但可以调好的 原因倒忘了
[解决办法]
在程序的每个函数中装上“监视器”,
在出错的地方显示所在的模块和函数名,然后根据出现的位置
来一步步排除可能存在的问题。
[解决办法]
GGL123() ( ) 信誉:100 Blog 加为好友 2007-6-4 21:52:25 得分: 0
建议在那台机器上装上VB,看看源码怎样运行,在哪断了
这种错误不好调试,可能跟机器也有关系,我遇到过一次向上面的调试了,源码里有错,但可以调好的 原因倒忘了
//
个人建议,此法不妥....
如果目标组件是VB6里面的,就弄不清楚了...
我觉得,如junki(『.NET技术争霸天下』) 的办法较好
在代码里面写语句,然后到用户机器上执行.
记录一下出错的地方.
[解决办法]
呵呵
那就说明你的代码质量不够呀。
你没有捕获错误,而把错误交给系统处理 了
你应该使用on error goto ...
然后你就可以知道出错的过程,当然你可以在主要的过程里使用行号,那样你就可以知道具体是哪一行出了问题。那么解决起来就很轻松了。
[解决办法]
但如果你使用了Data控件的绑定,那以在Load时就会绑定到数据源,
是否你的Data控件的绑定出了问题?
[解决办法]
在那台机器上安装MDAC试试
[解决办法]
在程序的每个函数中装上“监视器”,
//
这个工作是非常大的,呵...
况且要包括每个代码断,这个工作从开始写程序时就得做,后来做太晚了,个人认为最快的方法就是在其机器上安装vb进行调试
[解决办法]
With block 变量???
那说明你的程序有问题,检查所有的:With... End With语句。在打包之前,Right Click--> Toggle--> Break on all errors运行你的程序,看看有没有问题。
还一种可能是你在你的XP上安装Office Professional Version,包含Access.(不是Class Version,不包含Access.)
[解决办法]
constant CSIDL As Long = CSIDL_SYSTEM
Dim sPath As String
Dim sBuff As String * 260
Call SHGetSpecialFolderPathW(0, sBuff, CSIDL, False)
sPath = pvStripNulls(StrConv(sBuff, vbFromUnicode))
or GetWindowsDirectory API
得到系统文件夹的位置
[解决办法]
SHGetSpecialFolderPath or GetWindowsDirectory API 得到系统文件夹
[解决办法]
Setup factory里将文件选择安装到系统目录下,即可
[解决办法]
这个问题..
换个打包工具