const VARIANT FAR& DATA转为适合在编辑框输出的类型,比如CString.
下面是我错误的类型转换:
CString strAsc;
BSTR bstrAsc;
bstrAsc=DATA.bstrVal;
strAsc=(LPCTSTR)bstrAsc;
最后把strAsc输出,一行字符只输出第一个字符,不知为何

解决方案 »

  1.   

    const VARIANT FAR& DATA;CStirng str = (LPCTSTR)_bstr_t(_variant_t(DATA) );
      

  2.   

    DATA.ChangeType(VT_BSTR,NULL);
    strAsc = DATA.bstrVal;
      

  3.   

    谢谢2位,请问为何akirya的答案如果DATA是十六进制会变成乱码,而ASC码就正常
    jameshooo的ChangeType函数报错,说是没有该函数
      

  4.   

    要么把DATA转换成CComVariant,要么就用VariantChangeType()
      

  5.   

    CString strAsc; 
    BSTR bstrAsc; 
    bstrAsc=DATA.bstrVal; 
    strAsc=(LPCTSTR)bstrAsc; -->CString strAsc; 
    strAsc = DATA.bstrVal;