mfc写的activex 在html中调用失败,怎么弄

想你的我们 2010-06-13 09:42:19
我用vs2005创建了一个activex(自动生成的,什么也没改),也注册了。用vs2005带的测试容器可以正常测试(画了个椭圆)
但我在html中测试,调用都无法成功,是一个大叉.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<object classid="clsid:08DD8798-2986-4258-AA9B-42A9D3359D66" width="100" height="100">
</object>
</BODY>
</HTML>

classid应该没错,是uuid

我是在本机测试的,请问怎么弄?
...全文
171 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
平安狸 2012-07-06
  • 打赏
  • 举报
回复
期待高人。。。
想你的我们 2010-06-18
  • 打赏
  • 举报
回复
哪位帮忙做个例子发过来啊。在本机都无法成功,不能继续学了。

哪位能做个现成的简单的例子给我?vs2005,并且在本机ie里测试能运行。
sunce.apples@163.com 多谢了。
想你的我们 2010-06-17
  • 打赏
  • 举报
回复
还是不行,我把网上关于安全的代码都加入了。都不行。我现在只想实现能在本机运行。哪位能做个现成的简单的例子给我?vs2005,并且在本机ie里测试能运行。
sunce.apples@163.com 多谢了。
我在地球 2010-06-14
  • 打赏
  • 举报
回复
可能是 IE 不允许 安装 没有 标记成安全的控件。

在 工程 主实现文件 .cpp (注意:不是 control 主实现文件)中:
的 DllRegisterServer()方法中的自动生成的代码的 return NOERROR; 之前,输入以下代码:

//
if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
return ResultFromScode(SELFREG_E_TYPELIB);

if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( CreateComponentCategory(
CATID_SafeForScripting,
L"Controls that are safely scriptable") ))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( CreateComponentCategory(
CATID_SafeForInitializing,
L"Controls safely initializable from persistent data") ))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( RegisterCLSIDInCategory(
_ctlid, CATID_SafeForScripting) ))
return ResultFromScode(SELFREG_E_CLASS);

if (FAILED( RegisterCLSIDInCategory(
_ctlid, CATID_SafeForInitializing) ))
return ResultFromScode(SELFREG_E_CLASS);
//
标记成脚本安全
想你的我们 2010-06-13
  • 打赏
  • 举报
回复
经过我的测试,感觉是ocx的问题。我设置成低级别,提示:无法验证发行者,你要继续安装吗?
点确定还是显示不出来。但又看不出来问题在哪。各位能否给个详细的例子。
我在地球 2010-06-13
  • 打赏
  • 举报
回复
IE 安全级别, Flash 控件 可以 但 自己写的 不会默认 可以 。

需要有 标记为安全 + 数字签名 + 降低到 最低安全级别 才行
想你的我们 2010-06-13
  • 打赏
  • 举报
回复
楼上2位,肯定是注册成功的。
首先vs2005编译的时候,就已经注册好了,
其次我在vs2005的容器测试工具里能找到该ocx,能调用成功.

最后,我就按你们说的,手动注册一次。提示成功
但还是不行啊。
奇才有点痴 2010-06-13
  • 打赏
  • 举报
回复
应该是没注册才出现大叉的情况
Jimmy_Xia 2010-06-13
  • 打赏
  • 举报
回复
手动注册该控件:
regsvr32 my_activex.dll
想你的我们 2010-06-13
  • 打赏
  • 举报
回复
网页都是默认的安全级别,比如flash什么的都可以正常啊。

"可能没初始化吧"是怎么个初始化?
oyljerry 2010-06-13
  • 打赏
  • 举报
回复
网页是否允许加载控件,安全级别..
soswaidao 2010-06-13
  • 打赏
  • 举报
回复
可能没初始化吧
想你的我们 2010-06-13
  • 打赏
  • 举报
回复
不行啊。我已经设置成最低了。本机怎么都不行?我是ie7.显示红叉!!
哪位帮忙了弄成功了,再加20分。
我在地球 2010-06-13
  • 打赏
  • 举报
回复
要设置对应的 区域安全 如果是 Internet web 站点 可以考虑加入 信任站点 ,在将安全级别设为 低

如果是 本地 则 要设本地 的 才有用 ,

根据你的 提示:无法验证发行者,你要继续安装吗? 则说明 可以安装了,ocx 本身应该没问题
想你的我们 2010-06-13
  • 打赏
  • 举报
回复
请大家帮忙一把啊。

3,245

社区成员

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

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