如何将CString 转换为 OLECHAR * ?

解决方案 »

  1.   

    OLECHAR a[100];
    CString str;
    ....................
    swprintf(a,OLESTR("%s"),str.GetBuffer()),
      

  2.   

    VARIANT result;
    VariantInit(&result);
    VARIANT x;
    x.vt = VT_BSTR;
    OLECHAR olsPath[100];
    memset(olsPath, NULL, 100);
    // swprintf(olsPath, OLESTR("%s"), strName.GetBuffer(100));
    x.bstrVal = ::SysAllocString(olsPath);我所要实现的代码, 但是在最后一句::SysAllocString(olsPath);总是不能实现!
    swprintf(...);可以吗?
    解决问题,立刻结贴给分!
      

  3.   

    SysFreeString(x.bstrVal );   
    先加这句在SysAllocString()前看看
      

  4.   

    _variant_t()把CString作为参数传过来就可以生成一个VARIANT了,不用那么费劲
      

  5.   

    BSTR bstrCaption = (CString)strString.AllocSysString();
      

  6.   

    CString::AllocSysString 
    Example
    CString str("Hockey is Best!");
    BSTR bstr = str.AllocSysString();