(为了自己查找方便用的。)
今天用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 里面正常的出现了 椭圆。
一堆牢骚,纯粹为了自己以后遇到这个问题,容易查找。如果也刚好帮到了你,无比荣幸。