if (Name == var)?
BSTR可以这么比较么?

解决方案 »

  1.   

    比较两个BSTR没那么简单,建议采用如下方法:
    STDMETHODIMP myClass::myFun(BSTR Name, VARIANT_BOOL *pIsName)
    {
    _bstr_t var = "myName";
    if ( var== Name )
    *pIsName = VARIANT_TRUE;
    else
    *pIsName = VARIANT_FALSE;return S_OK;
    }如果服务器用的是ATL,可以把_bstr_t换成CComBSTR
      

  2.   

    STDMETHODIMP CmyClass::myFun(BSTR Name, VARIANT_BOOL *pIsName)
    {
    // TODO: Add your implementation code here
    //BSTR var = SysAllocString(L"hello");
    _bstr_t var("hello");
    if (_bstr_t(Name) == var)
    *pIsName = VARIANT_TRUE;
    else
    *pIsName = VARIANT_FALSE;
    return S_OK;
    }
    老僧给的我通不过编译.