none
error concatenando string RRS feed

  • Pregunta

  • int SearchHelper::ListDirSubdir1(string path, string strToSearch,PoolExecutor *pexThreads)
    {
    ...
    WIN32_FIND_DATA ffd;
    string fullPath_ ;
    string dirBase; 

    dirBase = path+"\\";   //path es de tipo string y es un parametro de ingreso al metodo
    fullPath_ = dirBase+"\\"+ffd.cFileName;

    ...
    }

    cuando trato de compilar, me salen el siquiente error
    error C2782: 'std::basic_string<_Elem,_Traits,_Alloc> std::operator +(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : template parameter '_Elem' is ambiguous
    1>        c:\programmi\microsoft visual studio 8\vc\include\string(61) : see declaration of 'std::operator +'
    1>        could be 'WCHAR *'
    1>        or 'char'

    Asi que para solucionar este error hice esto:
    fullPath_.assign(path);
    fullPath_.append("\\");
    fullPath_.append(ffd.cFileName);



    y me da el siguiente error, relativo a esta parte de codigo fullPath_.append(ffd.cFileName);

    error C2664: 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::append(const std::basic_string<_Elem,_Traits,_Ax> &)' : cannot convert parameter 1 from 'WCHAR [260]' to 'const std::basic_string<_Elem,_Traits,_Ax> &'
    1>        with
    1>        [
    1>            _Elem=char,
    1>            _Traits=std::char_traits<char>,
    1>            _Ax=std::allocator<char>
    1>        ]
    1>        Reason: cannot convert from 'WCHAR [260]' to 'const std::basic_string<_Elem,_Traits,_Ax>'
    1>        with
    1>        [
    1>            _Elem=char,
    1>            _Traits=std::char_traits<char>,
    1>            _Ax=std::allocator<char>
    1>        ]
    1>        No constructor could take the source type, or constructor overload resolution was ambiguous

    alguien podria por favor decirme como puedo hacer para solucionar este problema? .. 
    de antemano muchas gracias
    jueves, 4 de marzo de 2010 15:03

Todas las respuestas