我用vb做了一个activeX的dll,当用户用浏览器访问网站时通过网页里嵌入的代码将ActiveX下载到本地运行。
但是我在activeX里调用了ole32.dll里的产生GUID的方法。通过VB6自带的工具将其打包成通过internet安装的cab文件。通过win2000和windowsXP的IE访问时可以正确的安装和运行,可是在windows98里用IE访问的时候无法正确运行。我认为是windows98里的ole32.dll版本太旧。
我重新用打包工具打包,在打包的选项里,我选择“vb6 runtime and OLE”可以从微软的网站上下载最新版本。重新打包后,在windows98的IE里可以下载安装和正确运行,并且windows98确实更新了ole32.dll这个文件。但是新的问题又出现了。
如果我在windows2000下打包的,那么windows2000的环境里可以正确安装和运行,但是windowsXP的环境下就不能真确安装。反之,如果在windowsXP下打包的,在windowsXP下一切正常,在windows2000下就能安装了。请问这是怎么回事?
如何解决啊?
但是我在activeX里调用了ole32.dll里的产生GUID的方法。通过VB6自带的工具将其打包成通过internet安装的cab文件。通过win2000和windowsXP的IE访问时可以正确的安装和运行,可是在windows98里用IE访问的时候无法正确运行。我认为是windows98里的ole32.dll版本太旧。
我重新用打包工具打包,在打包的选项里,我选择“vb6 runtime and OLE”可以从微软的网站上下载最新版本。重新打包后,在windows98的IE里可以下载安装和正确运行,并且windows98确实更新了ole32.dll这个文件。但是新的问题又出现了。
如果我在windows2000下打包的,那么windows2000的环境里可以正确安装和运行,但是windowsXP的环境下就不能真确安装。反之,如果在windowsXP下打包的,在windowsXP下一切正常,在windows2000下就能安装了。请问这是怎么回事?
如何解决啊?
2、自己修改安装程序,检测操作系统版本,进行相应操作
用什么打包工具,能做包含在网页里的ActiveX?
到底你那里出了问题啊。你找一个安装工具。包含最新的ole。
如果系统内存在ole32就不安装这个东东。如果没有才安装。
或者
如果 系统内的ole32比你安装包里面的旧就覆盖。否则就不覆盖。有这种语句式的打包工具。像inno setup4
setup factory也不错。我觉得都比vb自带的好些。
还有wise等
我是想判断如果是windows98下就到微软网站下载最新版,其他的就不管。这个文件该怎么改?
文件内容:
;INF file for thingDemo.dll
;DestDir can be 10 for Windows directory, 11 for Windows\System(32) directory, or left blank for the Occache directory.[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[DefaultInstall]
CopyFiles=install.files
RegisterOCXs=RegisterFiles
[RInstallApplicationFiles]
CopyFiles=install.files
RegisterOCXs=RegisterFiles
[DestinationDirs]
install.files=11
[SourceDisksNames]
1=%DiskName%,thingDemo.CAB,1[Add.Code]
ThingDemo.dll=ThingDemo.dll
MSVBVM60.DLL=MSVBVM60.DLL
OLEAUT32.DLL=OLEAUT32.DLL
OLEPRO32.DLL=OLEPRO32.DLL
ASYCFILT.DLL=ASYCFILT.DLL
STDOLE2.TLB=STDOLE2.TLB
COMCAT.DLL=COMCAT.DLL
[install.files]
ThingDemo.dll=ThingDemo.dll
MSVBVM60.DLL=MSVBVM60.DLL
OLEAUT32.DLL=OLEAUT32.DLL
OLEPRO32.DLL=OLEPRO32.DLL
ASYCFILT.DLL=ASYCFILT.DLL
STDOLE2.TLB=STDOLE2.TLB
COMCAT.DLL=COMCAT.DLL
[SourceDisksFiles]
ThingDemo.dll=1
MSVBVM60.DLL=1
OLEAUT32.DLL=1
OLEPRO32.DLL=1
ASYCFILT.DLL=1
STDOLE2.TLB=1
COMCAT.DLL=1[ThingDemo.dll]
file-win32-x86=thiscab
RegisterServer=yes
clsid={ED41D58C-C3E8-471E-A67D-D81AE005D60E}
DestDir=
FileVersion=1,0,0,0[MSVBVM60.DLL]
hook=MSVBVM60.cab_Installer
FileVersion=6,0,96,90
[MSVBVM60.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
run=%EXTRACT_DIR%\VBRun60.exe[OLEAUT32.DLL]
hook=OLEAUT32.cab_Installer
FileVersion=2,40,4522,0
[OLEAUT32.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
run=%EXTRACT_DIR%\VBRun60.exe[OLEPRO32.DLL]
hook=OLEPRO32.cab_Installer
FileVersion=5,0,4522,0
[OLEPRO32.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
run=%EXTRACT_DIR%\VBRun60.exe[ASYCFILT.DLL]
hook=ASYCFILT.cab_Installer
FileVersion=2,40,4522,0
[ASYCFILT.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
run=%EXTRACT_DIR%\VBRun60.exe[STDOLE2.TLB]
hook=STDOLE2.cab_Installer
FileVersion=2,40,4522,0
[STDOLE2.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
run=%EXTRACT_DIR%\VBRun60.exe[COMCAT.DLL]
hook=COMCAT.cab_Installer
FileVersion=4,71,1460,1
[COMCAT.cab_Installer]
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
run=%EXTRACT_DIR%\VBRun60.exe
[RegisterFiles]
%11%\COMCAT.DLL
%11%\OLEPRO32.DLL
%11%\OLEAUT32.DLL
%11%\MSVBVM60.DLL
%11%\ThingDemo.dll