我编写了一个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 32中不存在a.dll,但其他两个文件已经在其中,并且ocx已经注册。
a.dll被我自己弄伤了。b.dll是一个第三方图书馆.
我对此感到很困惑,并渴望得到你的帮助。
发布于 2013-08-23 03:13:05
尝试删除DestDir=11,这样就不会有任何东西进入system32文件夹。依赖项DLL文件将与OCX放在同一个文件夹中。此外,您可能缺少CRT (MSVC*.DLL)。我建议切换到C++项目设置中静态链接到CRT。使用依赖沃克检查您的DLL在目标计算机上是否有任何未解决的依赖项。
https://stackoverflow.com/questions/18352517
复制相似问题