本帖最后由 hh_xj 于 2011-01-20 14:57:23 编辑

解决方案 »

  1.   

    在用vs调试组件时,发现,ie加载了组件dll, 类厂和对象创建也ok(可能是部分OK,具体不详),但是 ie没有查询IDispatch接口。这与我的想象很不一致,javascript引擎应该会实现自动化控制器,把调用翻译成Dispatch接口的呀。求高手指教
      

  2.   

    get_dream_prop  不是属性吗?
      

  3.   

    test_com_obj.dream_prop=1;
    var i = test_com_obj.dream_prop;
    好像是这样吧
      

  4.   


    +1组件接口参数类型有隐患,把int改成long吧,别随意用类型,应该用自动化标准类型
      

  5.   

    当然!不过现在我很想让js能调用我的最简单的方法。
    我现在是自己实现了一个自动化组件对象。但ActivexObject()时出错:Automation server can't create object。  自定义组件的情况是:
    1, 用上面的idl文件,生成proxy/stub dll, regsvr32 注册之
    2, 自己的组件实现中,写好那些get/put函数和其他函数,并实现DLL的4个函数,regsvr32注册之
       这个自定义注册的结构很简单: progid到clsid的映射, clsid下inproc32指定dll路径,
    3, 类厂,对象,接口这些,应该是对的,C++的com client正常运行。能根据这些信息,帮我分析下吗?
      

  6.   

    var v = new ActiveXObject('progid');
    var p = v.prop; // call get_prop()
    v.prop = 12; // call put_prop()
      

  7.   


    发现现在的问题是, 用ActiveXObject创建没有成功,调试组件时,发现会请求一些我没有定义的接口:IActiveScript, IObjectSafety等
    而我只是定义了一个简单的组件实现IDispatch,我以为这样就够了,是不是一定要以ActiveX的方式来整呢?(ActiveX,我还没看?)
      

  8.   

    搞定了, 为什么csdn如此不给力。我决定以后来csdn只上首页和扩充话题
      

  9.   

    我记得好像是类型库的问题,具体忘了,类型库的加载,我真的忘了,com的东西都忘了。