帮忙看一下:为什么ocx下载不成功(提供详细的已知条件)?

JackyChengbing 2006-03-25 04:04:50
我用MFC作了个ocx控件,采用静态链接,叫做HCOCX5.ocx。
我有写了个inf文件,叫做HCOCX5.inf,内容如下:
;------------------------
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
HCOCX5.ocx=HCOCX5.ocx

[HCOCX5.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={941C82F8-DD38-4BFB-866D-2FD8A0E7DFA3}
DestDir= 11
FileVersion=1,0,0,1

;------------------------
以上二个文件压缩为HCOCX5.cab文件,放在C:\Inetpub\wwwroot路径下,同时在该路径中建立一个HTM文件,叫做default.htm,内容如下:
<HTML>
<HEAD>
<TITLE>HCOCX5.CAB</TITLE>
</HEAD>
<BODY>
<!-- 如果这页上的任何控件需要授权,您必须
创建一个授权包文件。 运行 LPK_TOOL.EXE 来创建
要求的 LPK 文件。 LPK_TOOL.EXE 将从 ActiveX SDK 中找到,
http://www.microsoft.com/intdev/sdk/sdk.htm. 如果您有 Visual
Basic 6.0 CD, 您可以在\Tools\LPK_TOOL 目录下找到它。

下面是对象标记的例子:

<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
<PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
</OBJECT>
-->

<OBJECT ID="HCOCX5"
CLASSID="CLSID:941C82F8-DD38-4BFB-866D-2FD8A0E7DFA3"
CODEBASE="HCOCX5.CAB#version=1,0,0,0">
</OBJECT>
</BODY>
</HTML>


HCOCX5.cox是我在本机上通过MFC生成的,本机已经配置IIS。我打开default.htm,可以正常显示控件,我在本机的IE中写入本地IP:192.168.1.92,也可以正常显示控件。

但我在其它计算机上访问192.168.1.92时(安全级别已经降到提示),在C:\WINNT/setupapi.log中形成了以下记录:
//-----------------------------------------------
[2006/03/25 15:30:01 968.1]
Munged cmdline: "C:\Program Files\Internet Explorer\iexplore.exe"
EXE 名称: C:\Program Files\Internet Explorer\iexplore.exe
正在将文件 C:\DOCUME~1\jinchen\LOCALS~1\Temp\ICD1.tmp\HCOCX5.ocx 复制到 C:\WINNT\system32\HCOCX5.ocx。
安装了一个没有签署的或签署得不正确的文件(C:\DOCUME~1\jinchen\LOCALS~1\Temp\ICD1.tmp\HCOCX5.ocx)。错误 0x800b0100: 主题中没有签名。
//------------------------------------------------

在InterNet临时文件夹C:\Documents and Settings\jinchen\Local Settings\Temporary Internet Files中出现了HCOCX5.cab,却没有在C:\WINNT\Downloaded Program Files中形成任何东西。

请问我什么地方错了,应该怎样处理?我已经反复弄了几天了,都不成功。还曾直接下载控件,但也不成功,请指教一下,不胜感激!
...全文
247 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JackyChengbing 2006-03-27
  • 打赏
  • 举报
回复
我用静态链接生成的ocx文件,是不是就不用把相关的dll文件包进来了?
MLiang 2006-03-27
  • 打赏
  • 举报
回复
另外还有更简单的一种方法,把Ax控件打包成cab
就是用VS的软件部署发布,创建一个cab项目,然后把你的OCX及其依赖的DLL添加进去,编译生成,这是他会帮你创建一个OSD3B.OSD文件 ,你用文本编辑器打开,你会发现他是一个XML,这东西代替了你自己创建的INF
MLiang 2006-03-27
  • 打赏
  • 举报
回复
你控件依赖的DLL没有打进来吧
这两篇文章希望对你有帮助
http://blog.csdn.net/mliang/archive/2006/03/17/626912.aspx
http://blog.csdn.net/mliang/archive/2006/03/21/631333.aspx
sunpc9999 2006-03-27
  • 打赏
  • 举报
回复
正被同样问题困扰------静态链接 需要再添加dll吗??
关注高人指点

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧