在网页中自动下载CAB时无法复制dll文件

时间:2013-08-21 08:31:36

标签: dll activex cab codebase inf

我编写了一个activeX插件并制作了一个cab文件来将ocx打包为2个dll文件,然后调用a.dll和b.dll。 ocx依赖于a.dll而a.dll依赖于b.dll。 inf文件是这样的:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0  

[Add.Code]
test.ocx=test.ocx
a.dll=a.dll
b.dll=b.dll

[test.ocx]
file-win32-x86=thiscab
clsid={AB1408A0-10F6-40BA-984D-074D7BDC3126}
FileVersion=3,1,0,17
DestDir=11
RegisterServer=yes

[a.dll]
file-win32-x86=thiscab
FileVersion=2,1,1,16
DestDir=11

[b.dll]
file-win32-x86=thiscab
FileVersion=2,0,0,16
DestDir=11

下载完成后,我发现C:/ windows / system32中不存在a.dll,但其他两个文件已经在其中,并且ocx已经注册。

我自己写错了a.dll。 b.dll是第三方库。

我对此感到很困惑,并渴望得到你的帮助。

1 个答案:

答案 0 :(得分:0)

尝试删除DestDir=11,因此没有任何内容进入system32文件夹。您的依赖DLL文件将放在与OCX相同的文件夹中。此外,您可能缺少CRT DLL(MSVC * .DLL)。我建议在C ++项目设置中静态切换到CRT链接。使用Dependency Walker检查您的任何DLL是否在目标计算机上有任何未解析的依赖项。