描述:
就是:我用VC2005 的 ATL 开发一个ACTIVE控件DLL,然后打包CAB文件,在本机WEB调用是没问题的,能输出结果。
问题是:我用其他机器访问本机(WEB页面运行在本机),运行时会出现脚本错误。我查询后,发现CAB下载到客户端后,关键的一个ATL 控件DLL(AtlActiveX.dll)没有自动下载到 SYSTEM32下,其他DLL都下载了,请问,我该怎么解决?
我的CAB包setup.inf文件内容如下:
=========================
[version]
signature="$CHINA$"
AdvancedINF=2.0
[Add.Code]
AtlActiveX.dll=AtlActiveX.dll
TestDll.dll=TestDll.dll
IbmsSerialPort.dll=IbmsSerialPort.dll
[install.files]
AtlActiveX.dll=AtlActiveX.dll
TestDll.dll=TestDll.dll
IbmsSerialPort.dll=IbmsSerialPort.dll
[SourceDisksFiles]
AtlActiveX.dll=1
[AtlActiveX.dll]
clsid={B6D4B406-9CC4-4C80-B7A2-248BBB07F682}
file-win32-x86=thiscab
FileVersion=1,0,0,1
DestDir=11
RegisterServer=yes
[TestDll.dll]
file-win32-x86=thiscab
DestDir=11
FileVersion=1,0,0,1
RegisterServer=yes
[IbmsSerialPort.dll]
file-win32-x86=thiscab
DestDir=11
FileVersion=1,0,0,1
RegisterServer=yes
[RegisterFiles]
%11%\AtlActiveX.dll
; end of INF file
解决方案1:
如果其他机器上安装了vcredist_x86.exe就能解决你发帖问的问题
那就是AtlActivex.dll依赖了VS2008的运行时库了
项目属性-配置属性-C/C++-代码生成-运行时库