用vc写了一个com组件,并已在注册表下注册,在asp.net中调用出现问题,代码如下:
 <script type="text/javascript">
        onload = function()
        {
             var  obj  = new ActiveXObject("AtlTest.CDataAceess"); 
             if (obj == NULL)
             {
                alert("失败!");
             }  
             else
             {
                alert("成功!");
             }
        }      </script>
运行出错:automation服务器不能创建对象,在网上查过一些资料,相关的措施如:regsvr32 scrrun.dll,设置Internet 自定义级别 对没有标记为安全的ActiveX控件进行初始化和脚本运行,都未能解决,望高人赐教!

解决方案 »

  1.   

    那个DLL你有没有放到你WEB工程目录的BIN目录下哦,光注册了还不行,一定还要将DLL放到BIN下
      

  2.   

    我把AtlTest.dll放在bin文件夹里还是不行啊!
      

  3.   

    我的可以这样调用
    <object classid='clsid:AA592A66-D691-4B84-80AF-5D0A40C9E460(这个ID你那里可能不一样)' name='com组件名称' id='aa'></object>在该页面通过JSfunction test()
    {var ctrl =document.all('com组件名称');  }
    我的是这样,不知道楼主这样行不行,还有,上面的贴写错了,可以不放在BIN里面
      

  4.   

    谢谢,按这种方法,我如何调用接口方法?我的在CDataAceess中由一个Hello()方法,如下:
    STDMETHODIMP CCDataAceess::Hello(void)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    ::MessageBoxA(NULL,"HelloWord","Test", MB_OK);
    return S_OK;
    }
    我在html代码中调用如何调用这个方法呢?ctrl.Hello()吗?这样没效果啊!
      

  5.   

    是啊 应该就是ctrl.Hello()这样调用的,我的那个COM里面的方法就是这样调用的
      

  6.   

    我这里不行啊,运行到ctrl.Hello()报错,说不支持属性或方法,能把你的例子发我邮箱[email protected],给我参考一下吗?或者我把我的例子给你帮我看看,谢了
      

  7.   

    不好意思啊楼主,上面有一点我又说错了
    var ctrl =document.all('这里不是name,应该是ID');
    难怪找不到里面的方法,再试试