您的位置:首页 > 移动开发 > Objective-C

activeX,在VC 里面的调试正常,嵌入网页IE中显示为红色叉的原因。

2012-03-02 20:18 387 查看
      (为了自己查找方便用的。)

    今天用vs2010 的向导生成了一个ActiveX 控件, 默认的什么设置都不去调。然后用IDE 自带的工具测试,能够正常的显示一个椭圆。

   然后用<Object> 的标签嵌入到网页中,IE 中显示的是大大的红色叉,没有任何提示。根本不知道是IE的安全设置还是其他的任何原因。

  

    网上什么说法都有,说向导生成的activex 控件还要实现什么接口。记得以前也嵌入过,并没有要实现什么接口,因此不理这些不负责任的

说法。然后不停的折腾。折腾到 一个 怪情况  将Object 标签中的    clsid:F34B3C63-AE6B-4659-AA87-1041E480309F 的clsid去掉,居然IE

中的红色大叉 不见了。出来一个四四方方的框,以为是这个原因造成的,然后细心看adobe 给的嵌入flash的代码也是有这个clsid的,因此问题

觉得不是在这里,然后细心看正常的话,应该能够显示一个椭圆的。

    折腾到最后,郁闷的发现原来是拿错了 classid ,因为向导生成的idl 文件里面有4个classid ,可恨的是 第一个不是我们要的classid ,(可恨

  的微软,居然把不是我们要的ocx的classid放在第一位,然后更可恨的是还加了个version=1.0 ,让我误以为就是这个),原来最后一个

   //  CspiritActiveXCtrl 的类信息 的classid 才是我们要 的正在id 。

       至此,更改classid ,ie 里面正常的出现了 椭圆。

     一堆牢骚,纯粹为了自己以后遇到这个问题,容易查找。如果也刚好帮到了你,无比荣幸。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息