制作的cab包含如下的东东 一个控件 一个.inf 还用到了一个dll 是direcx8.1带的
inf 如下
; version number and signature of INF file;
;
[version]
signature="$CHICAGO$"
AdvancedINF=2.0; The order of files in this seciton defines the download order.
[Add.Code]
myvoip.ocx=myvoip.ocx
dsound.dll=dsound.dll[dsound.dll]
file-win32-x86=thiscab
FileVersion=5,1,2600,881
Clsid={aec15949-3c64-4f55-a220-7965034c3986}
RegisterServer=no
Hook=installdll[myvoip.ocx]
file-win32-x86=thiscab
FileVersion=1,0,0,1
RegisterServer=yes
DestDir=%OBJECT_DIR%
Clsid={aec15949-3c64-4f55-a220-7965034c3986}
Hook=regnewocx[regnewocx]
run=regsvr32 /u/s %OBJECT_DIR%\myvoip.ocx
run=regsvr32 /s %OBJECT_DIR%\myvoip.ocx[installdll]
run=copy %EXTRACT_DIR%\dsound.dll %OBJECT_DIR%\dsound.dll我的问题是 我在win2k以上的版本都没有问题 但是在winme下智能下载 注册不了
载98下 根本下载不了 高手解决一下

解决方案 »

  1.   

    你的控件用了98不支持的功能吧,试试不要用UNICODE,静态连接ATL。
      

  2.   

    还有用于2X的dsound.dll,肯定不能在98里用啊。
      

  3.   

    用dsound.dll可能出问题?
    提示用户安装Dx8.1,或直接从M$的服务器上下载,不要在控件中集成dsound.dll
    那样不会安装Dx8.1的
    具体做法请参见MSDN:INF File Architecture
      

  4.   

    嗷,对了,致命问题:win98中没有atl3.0 (VC6.0中集成!),win98,winme不支持unicode
    对于win98即使用静态编译atl有时还是不行,只有让客户端安装atl3.0了,安装方法如下!
    inf 例子:[Add.Code]
    yourctl.dll=yourctl.dll
    atl.dll=atl.dll
    [atl.dll]
    hook=ATLinstaller   
    [ATLinstaller]
    file-win32-x86=http://activex.microsoft.com/controls/vc/atl.cab
    ; change the above URL to your atl.cab located as you like
    ; The atl.cab file actually contains a self extracting executable.
    ; In this case we specify a run= command
    run=%EXTRACT_DIR%\atl.
      

  5.   

    我以前遇到的问题跟你的问题一模一样!
    后来,我在win98下安装VC6.0编译之,而后再加入atl安装代码就ok了!
    不建议在cab包中加入dsound.dll
    否则麻烦大大地!