VARIANT类型参数怎么使用,比如在字符串/双精度/指针等方面的应用转化

解决方案 »

  1.   

    variant_t
    _variant_t_variant_t 是VARIANT的完全包装类。它提供多种构造函数和数据转换函数。本文仅讨论与字符串有关的操作。// 构造
    _variant_t v1 = "char string"; // 从LPCSTR 构造
    _variant_t v2 = L"wide char string"; // 从LPCWSTR 构造
    _bstr_t bs1 = "Bob";
    _variant_t v3 = bs1; // 拷贝一个 _bstr_t 对象
    // 数据萃取
    _bstr_t bs2 = v1; // 从VARIANT中提取BSTR
    _bstr_t bs3 = (_bstr_t) v1; // cast OK, 同上注意,_variant_t 方法在转换失败时会抛出异常,所以要准备用catch 捕捉_com_error异常。另外要注意 _variant_t 不能直接转换成MBCS字符串。要建立一个过渡的_bstr_t 变量,用其它提供转换Unicode到MBCS的类函数,或ATL转换宏来转换。与_bstr_t 不同,_variant_t 数据可以作为参数直接传送给COM方法。_variant_t 继承了VARIANT类型,所以在需要使用VARIANT的地方使用_variant_t 是C++语言规则允许的。你看一下就会明白啊
      

  2.   

    VARIANT
    一般来数先赋值 VARTYPE vt;这个成员表示内部数据的类型,然后给相应的成员赋值.
    如果可以的话推荐使用_variant_t之类的封装类