我已经实现了在一个cab文件里打包一个ocx文件形式的自动下载功能,但现在我的ActiveX控件需要一个dll文件才能执行,而我将这个dll文件和ocx文件打包到cab文件中后控件就无法显示在网页上了,请高手们执教!

解决方案 »

  1.   


    1。你的那个DLL文件还需要依赖别的DLL吗?(如果有,就要一起打包)
    2。严格检查你打包成的CAB文件中的INI文件,看其内容是否正确!(把你的INI文件内容贴出来)
      

  2.   

    http://msdn.microsoft.com/library/default.asp?url=/workshop/delivery/download/overview/infarchitecture.asp
    这里有inf文件格式的说明,然后你要下载cabarc对inf以及ocx打包,还要用signcode对打包后的文件进行签名。
    例子:w3socket.inf
    ======================
    [Version]
    Signature="$Chicago$"
    AdvancedINF=2.5[DefaultInstall]
    CopyFiles=DLLFiles
    RegisterOCXs=RegisterOCXSection
    AddReg=AddToRegistry[DefaultUninstall]
    cleanup=1
    Delfiles=DLLFiles
    UnRegisterOCXs=UnRegisterOCXSection
    DelReg=DeleteRegistry[RegisterOCXSection]
    %11%\socket.dll[UnRegisterOCXSection]
    %11%\socket.dll[SourceDisksNames]
    1="W3Socket",W3Socket.cab,1[SourceDisksFiles]
    socket.dll=1[DLLFiles]
    socket.dll[inffile]
    w3socket.inf[DestinationDirs]
    DLLFiles=11
    ======================
    然后用命令cabarc n W3Socket.cab W3Socket.inf Socket.dll,将Socket.dll和W3Socket.inf打包到W3Socket.cab
    最后用命令signcode -spc ..\jinhu.spc -k jinhu -n "W3Socket Component" -i http://www.google.com -t http://timestamp.verisign.com/scripts/timstamp.dll W3Socket.cab
    对W3Socket签名。
      

  3.   

    勘误: 第一个回复中的“INI文件”,应为“INF文件”
      

  4.   

    我现在用的打包工具是wincab,是一个类似于winzip的工具。我想问的是你们所说的.inf文件是指对打包工具打包起到指示作用的文件,还是说要把这个inf文件与其他文件一起打包?
      

  5.   

    我也遇到过这种问题,不知道inf是否必须要吗?
      

  6.   

    请问谁有cabarc.exe这个工具,请发给我:[email protected]
    谢谢!