网上有类似的帖子,但好象都没有很好的解决问题,现在,再次提出,请大家帮忙。
有一个mfc开发的activex控件,其中用LoadLibrary使用了一个第三方dll,包括Direct3d的。
我希望客户端的浏览器能将ocx控件和dll一起下载并运行:
我的INF文件配置如下:
[version]
signature="$CHINA$"
AdvancedINF=1.0
[Add.Code]
display.ocx=display.ocx
d3d9.dll=d3d9.dll
D3DX10d_38.dll=D3DX10d_38.dll
D3dx9d_38.dll=D3dx9d_38.dll
libmySQL.dll=libmySQL.dll
mfc90ud.dll=mfc90ud.dll
msvcp90d.dll=msvcp90d.dll
msvcr90d.dll=msvcr90d.dll
[display.ocx]
file=thiscab
clsid={4DE426ED-1271-451E-9E91-5F1B4692178B}
FileVersion=1,0,0,0
RegisterServer=yes
[d3d9.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=5.3.2600.2180 [D3DX10d_38.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.23.949.2378 [D3dx9d_38.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.23.949.2378 [libmySQL.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=7,10,3052,4 [mfc90ud.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.0.21022.8 [msvcp90d.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.0.21022.8 [msvcr90d.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.0.21022.8
//控件名称:display.ocx , 个DLL的FileVersion,通过右击鼠标查看其版本得到。
如果我手动将那个dll放到c:\winnt\system32则可以运行。
问题:
如果不通过手动添加DLL,只靠自动下载的话,有些DLL文件可以正常下载,如:libmySQL.dll。
但是其他的都不能下载,请问这是怎么回事啊。
注:客户端已经把服务器地址放入信任网站列表,安全级别已经放在最底了。
有一个mfc开发的activex控件,其中用LoadLibrary使用了一个第三方dll,包括Direct3d的。
我希望客户端的浏览器能将ocx控件和dll一起下载并运行:
我的INF文件配置如下:
[version]
signature="$CHINA$"
AdvancedINF=1.0
[Add.Code]
display.ocx=display.ocx
d3d9.dll=d3d9.dll
D3DX10d_38.dll=D3DX10d_38.dll
D3dx9d_38.dll=D3dx9d_38.dll
libmySQL.dll=libmySQL.dll
mfc90ud.dll=mfc90ud.dll
msvcp90d.dll=msvcp90d.dll
msvcr90d.dll=msvcr90d.dll
[display.ocx]
file=thiscab
clsid={4DE426ED-1271-451E-9E91-5F1B4692178B}
FileVersion=1,0,0,0
RegisterServer=yes
[d3d9.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=5.3.2600.2180 [D3DX10d_38.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.23.949.2378 [D3dx9d_38.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.23.949.2378 [libmySQL.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=7,10,3052,4 [mfc90ud.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.0.21022.8 [msvcp90d.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.0.21022.8 [msvcr90d.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=9.0.21022.8
//控件名称:display.ocx , 个DLL的FileVersion,通过右击鼠标查看其版本得到。
如果我手动将那个dll放到c:\winnt\system32则可以运行。
问题:
如果不通过手动添加DLL,只靠自动下载的话,有些DLL文件可以正常下载,如:libmySQL.dll。
但是其他的都不能下载,请问这是怎么回事啊。
注:客户端已经把服务器地址放入信任网站列表,安全级别已经放在最底了。
第二:DirectX是需要安装的,也就是说需要注册几个COM组件。
第三:为什么要用Debug版的,不嫌累么?
2.DirectX是不用安装的,因为我把所需要的DLL拷到刚装好的机器上,是可以运行的。
3.呵呵,小弟刚接触这个东西,所以不熟悉,我很菜的
不能指定安装目录的, ActiveX控件自动被下载到c:\windows\download\cache目 录中.AdvancedINF=2.0
改成2.0试下...
d3d9.dll
D3DX10d_38.dll
D3dx9d_38.dll
libmySQL.dll
mfc90ud.dll
msvcp90d.dll
msvcr90d.dllntdll.dll
d3d8thk.dll
msvcrt.dll
rpcrt4.dll
secur32.dll
advapi32.dll
comctl32.dll
gdi32.dll
kernel32.dll
oleaut32.dll
shell32.dll
user32.dll这些是所有的依赖项目了,没有你提到的那几个啊。而且红色的貌似是系统的,我在刚装系统的电脑上找了一下,红色的都有。
嗨,
flash的目录在 WINDOWS\system32\Macromed\Flash下,都是自己指定的目录。
mfc90ud.dll
msvcp90d.dll
msvcr90d.dll
这3个dll是有版本限制的,你可以看看WINDOWS\WinSxS目录 manifests还有指定dll版本的作用。
你要确定版本一致