CString str;
   str=(LPCSTR)_bstr_t(var);//为什么需要这么转化?

解决方案 »

  1.   

    关于数据类型转换由于COM对象是跨平台的,它使用了一种通用的方法来处理各种类型的数据, 
    因此Cstring 类和COM对象是不兼容的,我们需要一组API来转换COM对象和C++类型的数据。_vatiant_t和_bstr_t就是这样两种对象。它们提供了通用的方法转换COM对象和C++类型的数据。
      

  2.   

    关于数据类型转换由于COM对象是跨平台的,它使用了一种通用的方法来处理各种类型的数据,因此Cstring 类和COM对象是不兼容的,我们需要一组API来转换COM对象和C++类型的数据。_vatiant_t和_bstr_t就是这样两种对象。它们提供了通用的方法转换COM对象和C++类型的数据。_variant_t是VARIANT的包装类,VARIANT类型可以存放任何数据类型,其实在COM中VARIANT是一个结构;   
    _bstr_t是BSTR的包装类, BSTR是存放字符串的指针,但是双字节的,类似unsigned short *。
    _bstr_t   ,_variant_t,_com_err,_com_prt_t,四种类是com支持类,在comdef.h中定义,使用这些类,可以避免在组件中引起的冲突,更多详细的内容可以看看msdn。