我现在用ATL开发一个COM组件,在该组件中我用到了另外一个基于其它
COM组件的动态库,这个动态库在普通应用程序中使用没有问题,但是把相同的代码拿到我的COM组件里,编译没有问题,但是我在ASP中调用时就报错.不知道在开发COM过程中,如果要用到别的COM组件,需要注意哪些问题,比如是否还需要调用CoInitialize(null)和CoUninitialize();如果要的话,通常放在什么位置呢.

解决方案 »

  1.   

    ActiveX空间在客户端被执行,你所调用的那个组件下载到客户端了么?
      

  2.   

    只要你在COM里没用到多线程,就不用再调用CoInitialize。
      

  3.   

    还有要注意地问题是:
    另外一个组件是否支持双接口
    是否由IDispatch派生
      

  4.   

    编译器对COM的检查能力可以说为0,它最多只能从语法的角度去看看,因为毕竟COM库更多的还是运行期的东西嘛。所以说,编译通过,运行出错是常见的现象,楼主有无CoInitialize? 或者你的组件中调用的那个组件是否对运行环境有特殊要求? 比如说要先做一些初始化,或者必须按照一定的顺序调用接口函数? 这些东西要考虑的地方尤其是后者。
      

  5.   

    LZ去看看该控件是否支持IDispatch