cab包里,有ocx控件及用到的几个动态链接dll
现在问题是,网页里codebase指明了cab之后,只有ocx被拷贝进了system32,那些动态链接的dll都没有拷贝进去。
请问大家这是什么原因。
inf文件如下:
[version]    
signature="$CHICAGO$"   
AdvancedINF=2.0   
   
[Add.Code]    
IniFile.dll=IniFile.dll
LogFile.dll=LogFile.dll
DaoDb.dll=DaoDb.dll
mfc71.dll=mfc71.dll
msvcr71.dll=msvcr71.dll
msvcp71.dll=msvcp71.dll
JLHisDataSync.ocx=JLHisDataSync.ocx[JLHisDataSync.ocx]    
file-win32-x86=thiscab   
clsid={3405DF28-6E70-443F-ADE9-3D9B86EF9D36}    
FileVersion=1,0,0,2   
RegisterServer=yes
DestDir=11
   
[msvcr71.dll]    
file-win32-x86=thiscab    
RegisterServer=no    
DestDir=11
FileVersion=7,10,3052,4
   
[mfc71.dll]    
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=7,10,3077,0
   
[msvcp71.dll]    
file-win32-x86=thiscab    
RegisterServer=no    
DestDir=11
FileVersion=7,10,3077,0 [DaoDb.dll]    
file-win32-x86=thiscab    
RegisterServer=no    
FileVersion=1,3,0,1
DestDir=11[LogFile.dll]    
file-win32-x86=thiscab    
RegisterServer=no    
FileVersion=1,0,0,1
DestDir=11
  
[IniFile.dll]    
file-win32-x86=thiscab    
RegisterServer=no    
FileVersion=1,0,0,1
DestDir=11控件用到了daodb.dll,inifile.dll,logfile.dll,但是这3个dll都没拷贝进system32目录

解决方案 »

  1.   

    ocx也自动注册上了,就是那些动态链接的dll没拷贝进去,结果运行就出错
      

  2.   

    类似这样写,你参考一下:
    [Version]
    Signature = "$CHICAGO$"
    AdvancedINF = 2.0[DefaultInstall]
    CopyFiles = DllFiles[DestinationDirs]
    DefaultDestDir = 11[DllFiles]
    IniFile.dll
    LogFile.dll
    DaoDb.dll
    mfc71.dll
    msvcr71.dll
    msvcp71.dll
      

  3.   

    需要在Inf文件里面将dll复制到system32这个目录下。
      

  4.   

    to cnzdgs
    我试着把你的内容加在add.code,但是system32目录下还是只有ocx文件
    to akirya
    你的意思我不太明白,DestDir=11 不就是要把文件复制到system32目录的意思么
    大家再帮帮忙啊,挺急的
      

  5.   

    to cnzdgs 
    我试着把你的内容加在[add.code]之前,但是重新打包cab,运行以后system32目录下还是只有ocx文件
    前面写急了
      

  6.   

    to cnzdgs :
    dll是拷贝进去了,但是ocx怎么自动注册啊。
    再帮忙看看,谢谢。
      

  7.   

    再这样试试。
    [Version]
    Signature = "$CHICAGO$"
    AdvancedINF = 2.0[DefaultInstall]
    CopyFiles = DllFiles[DestinationDirs]
    DefaultDestDir = 11[DllFiles]
    IniFile.dll
    LogFile.dll
    DaoDb.dll
    mfc71.dll
    msvcr71.dll
    msvcp71.dll
    JLHisDataSync.ocx = JLHisDataSync.ocx[JLHisDataSync.ocx]
    RegisterServer=yes
      

  8.   

    没有[add.code]不会去自动注册吧
      

  9.   

    我没做过需要注册的,对add.code不了解,你自己加上试试吧。
      

  10.   

    但是我一把[add.code]那部分添上去,那些dll就不往system32下拷贝了,郁闷的不行了。
      

  11.   

    只保留RegisterServer=yes,把其它删掉试试。
      

  12.   

    我明白原因了,谢谢cnzdgs的帮助,分全给你了
      

  13.   

    原因不是在cab包里,而是因为在系统path路径里已经有那几个dll了,所以新的dll就不能拷贝进去
    但是因为dll版本的问题,ocx不能正常跑,所以郁闷了很久。