最近一个同事跑来问我, com接口能否使用stl, 我当即就说stl是标准模板库, 应该可以使用, 但我其实没这样使用过, 请各位高手不吝指点.

解决方案 »

  1.   

    不知道啊,用BSTR不行么???
      

  2.   

    可以,我用ATL写ActiveX控件时用过
      

  3.   

    接口里面似乎不能这么做
    首先IDispatch接口只能用有限种类的类型,你不可以任意用类型
    对于其他接口,你至少不能用模板,因为接口都是类型固定的,而模板类型不固定,其次如果你要用一个非简单类型,你必须在idl中声明这个类型,如果stl中的类型,能否方倒idl中声明都不一定
      

  4.   

    不能,要是COM的话,你得考虑其他语言调用,比如C语言.根本没相当的东西就算都是C++
    stl的实现有多个版本,内存布局不同.
    就算同一个版本,不同版本的编译器,编译出来的东西内存布局也不一定一样.
      

  5.   

    楼上歪解,楼主不必担心,COM中完全可以使用STL
    放心使用吧
      

  6.   

    参数使用STL可能会有问题
    别的地方用STL,没问题