我用dao做了一个数据库小软件,我用vb的打包程序和用setup factory打包,到没有装VB的机器上安装后,一运行会出现
class not registered
looking for object with CLSID; (这里还有一串数字)
的错误,按确定可以进入程序的登陆界面,输入用户名和密码(此时需要和数据库交互),按回车时,会出现
runtime error '91'
Object variable or With block variable not set
错误,然后程序就死亡了。没有提示其他的错误。
我怀疑是ocx控件没有注册,于是自己在 开始-》运行那里将所需的控件注册,结果仍是一样;
在setup factory里,也是将所需ocx和dll在 OLE/ActiveX注册那里打钩,结果也是一样。
后来怀疑是MDAC没有安装,就安装了MDAC2.7,结果还是一样。在win2000系统上都会有这个错误;
在winxp上在安装时会提示无法创建 %commonfles%/microsoft share/dao目录.只有一次可以正常运行,但不知道是什么道理。
有装VB的系统就可以,卸载VB后就不可以。
我在想,VB在安装时应该是在系统里注册了VB开发的软件所需的类,却不知道如何解决。下面是setup.lst文件的内容:[Bootstrap]
SetupTitle=Install
SetupText=Copying Files, please stand by.
CabFile=员工考勤系统.CAB
Spawn=Setup1.exe
Uninstal=st6unst.exe
TmpDir=msftqws.pdw
Cabs=1[Bootstrap Files]
[email protected],$(WinSysPathSysFile),,,6-18-98 12:00:00 AM,102912,6.0.81.69
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,5-31-98 12:00:00 AM,22288,4.71.1460.1
[email protected],$(WinSysPathSysFile),,,6-20-03 3:05:04 AM,143632,2.40.4522.0
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,6-20-03 3:05:04 AM,164112,5.0.4522.0
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,6-20-03 3:05:04 AM,626960,2.40.4522.0
[email protected],$(WinSysPathSysFile),$(TLBRegister),,6-20-03 3:05:04 AM,16896,2.40.4522.0
[email protected],$(WinSysPathSysFile),$(DLLSelfRegister),,2-23-04 8:42:40 PM,1386496,6.0.97.82[IconGroups]
Group0=员工考勤系统
PrivateGroup0=True
Parent0=$(Programs)[员工考勤系统]
Icon1="员工考勤系统使用说明.doc"
Title1=说明
StartIn1=$(AppPath)
Icon2="员工考勤系统.exe"
Title2=员工考勤系统
StartIn2=$(AppPath)[Setup]
Title=员工考勤系统
DefaultDir=$(ProgramFiles)\工程1
AppExe=员工考勤系统.exe
AppToUninstall=员工考勤系统.exe[Setup1 Files]
[email protected],$(AppPath),,,6-13-01 12:11:16 AM,71680,0.0.0.0
[email protected],$(AppPath),,,3-24-05 2:41:34 AM,3112960,0.0.0.0
File3=@员工考勤系统使用说明.doc,$(AppPath),,,3-24-05 3:36:18 AM,692224,0.0.0.0
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),3-13-01 2:49:28 PM,140288,6.0.84.18
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-24-98 12:00:00 AM,369696,6.0.0.8169
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-26-98 12:00:00 AM,644400,6.0.81.77
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),12-20-02 2:02:44 PM,1077336,6.1.95.45
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-24-98 12:00:00 AM,164144,6.0.80.22
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-26-98 12:00:00 AM,525352,5.1.81.4
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-24-98 12:00:00 AM,200496,6.0.81.69
[email protected],$(WinSysPathSysFile),,,5-7-98 12:00:00 AM,174352,4.0.993.4
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-24-98 12:00:00 AM,203576,6.0.81.69
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-24-98 12:00:00 AM,244024,6.0.81.69
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-24-98 12:00:00 AM,609584,6.0.80.22
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-20-03 3:05:04 AM,94480,2.53.6200.0
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),3-2-04 3:58:18 AM,561424,3.60.8618.0
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),5-23-00 10:45:58 PM,118784,6.0.84.50
[email protected],$(WinSysPath),$(DLLSelfRegister),$(Shared),6-18-98 12:00:00 AM,299008,6.0.81.69
File19=@员工考勤系统.exe,$(AppPath),,,3-24-05 3:35:10 AM,278528,1.0.0.0望高手赐教,不胜感激。若两天内能帮我解决,送你500分。

解决方案 »

  1.   

    dao360.dll
    DAO350.DLL
    Dao2535.tlb
    VB6CHS.DLL
    VB6STKIT.DLL
    以上几个加上了没??
      

  2.   

    tztz520(午夜逛街) ( ) 信誉:143  2005-03-26 08:50:00  得分: 0  哈哈,又是逛街兄来帮忙。
    dao360.dll
    DAO350.DLL
    Dao2535.tlb
    VB6CHS.DLL
    这几个东西,在 开始->运行 那里进行注册时,比如说dao360.dll,会提示 
    loadlibrary("dao360.dll")failed-找不到指定模块  其他三个也是同样的错误。而VB6STKIT.DLL在注册时,会提示
    vb6stkit.dll was loaded,but the DllRegisterServer entry point was not found.
    DllRegisterServer may not be exported, or a corrupt version of vbstkit.dll may be in memeory. Consider using PView to detect and remove it.有没有装VB,在注册这些文件都是同样的错误。但有VB,程序就能运行。
      

  3.   

    要路径.如:
    regsvr32 f:\abc\dao360.dll
    VB6CHS.dll不用注册
      

  4.   

    见鬼了,我有加路径的,比如:
    regsvr32.exe C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll但同样无法注册:
    loadlibrary("dao360.dll")failed-找不到指定模块我每分钟刷新这个页面一次。
      

  5.   

    在system32目录下真的就可以注册了。究竟这个目录是有什么问题:
    C:\Program Files\Common Files\Microsoft Shared\DAO
    用setup factory打包后,在安装时,老是提示无法创建 %commonfles%/microsoft share/dao目录。另一个问题:是不是要在一台没有VB的机器上安装这个软件,都要进行这样的注册。
    在XP下安装时会不会更轻松点?
      

  6.   

    都要注册.
    用setup factory打包就方便多了,里面有"注册"的选项,你选上就可以了.
    将你的所需要的DLL和OCX还有EXE文件都放到一个文件夹里,然后打包这个文件就行
      

  7.   

    连接数据库,不要用ado空间,最好用代码写,因为数据库连接路径的问题。不要用绝对路径,要用相对路径。
      

  8.   

    tztz520(午夜逛街) ( ) 信誉:143 
    都要注册.
    用setup factory打包就方便多了,里面有"注册"的选项,你选上就可以了.
    将你的所需要的DLL和OCX还有EXE文件都放到一个文件夹里,然后打包这个文件就行
    ------------------------------------------------------------------
    老大,按你的方法做了,可是还是无法移植到XP下。
    错误提示跟原来的一样
    ---------------------------
    工程1
    ---------------------------
    Class not registered. 
    Looking for object with CLSID:{00000010-0000-0010-8000-00AA006D2EA4}
    ---------------------------
    确定   
    ---------------------------在登陆界面输入用户名和密码,按登陆,出现错误提示:
    ---------------------------
    工程1
    ---------------------------
    Run-time error '91':Object variable or With block variable not set
    ---------------------------
    确定   
    ---------------------------
      

  9.   

    也就是说,按 午夜逛街兄说的,用“将你的所需要的DLL和OCX还有EXE文件都放到一个文件夹里,然后打包这个文件就行”的方法,同样无法将dao350.dll注册到系统里,还是要通过手动的注册。