问题如标题。

解决方案 »

  1.   

    see these:
    _variant_t ( 或COleVariant)
    Cstring.AllocSysString基本上就是VARIANT v = _variant_t(s.AllocSysString());
      

  2.   

    _variant_t vst;
    CString str = "abc";
    vst.SetString((const char*)str);
      

  3.   

    用COleVariant
    COleVariant( LPCTSTR lpszSrc );COleVariant( LPCTSTR lpszSrc, VARTYPE vtSrc );
      

  4.   

    CString cs("Hello");
    VARIANT var = cs.AllocSysString();
    如果你自身调用的话而不是通过函数传递调用那还要用
    ::SysFreeString(var);
      

  5.   

    楼上的VARIANT var = cs.AllocSysString();
    应该为VARIANT var;
    var.bstrVal = cs.AllocSysString();
      

  6.   

    1、_variant_t
    (1)、一般传给这3个指针的值都不是MFC直接支持的数据类型,而要用_variant_t转换一下
    _variant_t(XX)可以把大多数类型的变量转换成适合的类型传入:
    (2)、_variant_t var;_variant_t -> long: (long)var;
    _variant_t -> CString: CString strValue = (LPCSTR)_bstr_t(var);
    CString -> _variant_t: _variant_t(strSql);
    2、BSTR宽字符串与CString相互转换BSTR bstr;
    CString strSql;
    CString -> BSTR: bstr = strSql.AllocSysString();
    BSTR -> CString: strSql = (LPCSTR)bstr;
    3、_bstr_t与CString相互转换_bstr_t bstr;
    CString strSql;
    CString -> _bstr_t: bstr = (_bstr_t)strSql;
    _bstr_t -> CString: strSql = (LPCSTR)bstr;
      

  7.   

    我用 _variant_t((LPCTSTR)CString); 就可以了
      

  8.   

    (_variant_t)(LPCTSTR)强制类型转换