我写了一个简单的MFC Activex,按照这里的写法(http://www.codeguru.com/cpp/com-tech/activex/controls/article.php/c2615/),想显示一个简单的dialog窗口嵌入IE里面,现在在Activex测试容器里面已经可以显示出来,可以每每想嵌入到网页的时候确老是显示图片占位符或者红X。之前我查看了个论坛的文章,似乎也有遇到类似问题的。我参照里面的例子(http://www.china-askpro.com/msg40/qa13.shtml)和msdn的说法(http://msdn.microsoft.com/library/default.asp?url=/workshop/components/activex/safety.asp),添加了Using the Component Categories Manager的代码。结果还是一样郁闷:(

解决方案 »

  1.   

    我的系统是XP+SP2,但是浏览器的安全级别已经是最低了。查看了很多的文章,实在想不出原因了,不知道是不是我的插件必须先通过认证才能运行。
      

  2.   

    我现在是直接用OCX来测试的,网页代码是这样的  <html>
      <head>
      <title>DialogControl</title>
      </head>
      <body>  <center>  <script language="JavaScript">
      function InitOcx()
      {
    alert(DialogControl);     DialogControl.Install2();
      }
      </script>
      <P>
      </P>
      <button onclick="InitOcx()">Test</button>  <OBJECT ID="DialogControl"  CLASSID="CLSID:BAB156BE-47AC-47B0-822F-1281E34023A3"
       HEIGHT=300 WIDTH=300>
      </OBJECT>  </center>  </body>
      </html>
    控件显示不出来,但控件确实已经注册成功了的,Activex控件测试容器可以正常运行。是否必须放到一个CAB包里面才能测试?这个CAB包还得认证吧
      

  3.   

    没必要放在cab里面,而且不认证的cab也可以的
    你这是其他问题
    你的控件在vb或是vc测试容器等其他定方显示正常么
      

  4.   

    我怀疑你的CLASSID可能不正确,我曾经有一次就是高错了显示不出来
    在你的IDL文件最下面
    //  CAxCSChartCtrl 的类信息 [ uuid(C7655562-8F20-4922-A55C-36730698E63D),
      helpstring("AxCSChart Control"), control ]
    coclass AxCSChart
    {
    [default] dispinterface _DAxCSChart;
    [default, source] dispinterface _DAxCSChartEvents;
    };
    这里才是你的控件CLASSID
      

  5.   

    别搞撑模块id 或是接口id了,试一下
      

  6.   

    呵呵下午搞定了,郁闷一天了,找资料翻网站查MSDN,就是忽略了最简单的问题,用错了CLASSID,就是MLiang(俺想有栋房)朋友说的情况,寒自己一个!哈谢谢各位了。