I am getting the below mentioned error in my program. what will be the solution?
<pre><code>// Finaldesktop.cpp : Defines the entry point for the console application.
//
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;


using namespace std;




int SearchDirectory(vector&lt;string&gt; &amp;refvecFiles,
                const string        &amp;refcstrRootDirectory,
                const string        &amp;refcstrExtension,
                bool                     bSearchSubdirectories = true)
{
string     strFilePath;             // Filepath
string     strPattern;              // Pattern
string     strExtension;            // Extension
HANDLE          hFile;                   // Handle to file
WIN32_FIND_DATA FileInformation;         // File information


strPattern = refcstrRootDirectory + "\\*.*";


hFile = FindFirstFile(strPattern.c_str(), &amp;FileInformation);
if(hFile != INVALID_HANDLE_VALUE)
{
do
{
  if(FileInformation.cFileName[0] != '.')
  {
    strFilePath.erase();
    strFilePath = refcstrRootDirectory + "\\" + FileInformation.cFileName;

    if(FileInformation.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
    {
      if(bSearchSubdirectories)
      {
        // Search subdirectory
        int iRC = SearchDirectory(refvecFiles,
                                  strFilePath,
                                  refcstrExtension,
                                  bSearchSubdirectories);
        if(iRC)
          return iRC;
      }
    }
    else
    {
      // Check extension
      strExtension = FileInformation.cFileName;
      strExtension = strExtension.substr(strExtension.rfind(".") + 1);

      if(strExtension == refcstrExtension)
      {
        // Save filename
        refvecFiles.push_back(strFilePath);
      }
    }
  }
} while(FindNextFile(hFile, &amp;FileInformation) == TRUE);

// Close handle
FindClose(hFile);

DWORD dwError = GetLastError();
if(dwError != ERROR_NO_MORE_FILES)
  return dwError;
}

return 0;

}

int main()
{
int iRC = 0;
vector&lt;string&gt; vecAviFiles;
vector&lt;string&gt; vecTxtFiles;


// Search 'c:' for '.avi' files including subdirectories
iRC = SearchDirectory(vecAviFiles, "c:", "avi");
if(iRC)
{
cout &lt;&lt; "Error " &lt;&lt; iRC &lt;&lt; endl;
return -1;
}

// Print results
for(vector&lt;string&gt;::iterator iterAvi = vecAviFiles.begin();
  iterAvi != vecAviFiles.end();
  ++iterAvi)
cout &lt;&lt; *iterAvi &lt;&lt; endl;

// Search 'c:\textfiles' for '.txt' files excluding subdirectories
iRC = SearchDirectory(vecTxtFiles, "c:\\textfiles", "txt", false);
if(iRC)
{
  cout &lt;&lt; "Error " &lt;&lt; iRC &lt;&lt; endl;
  return -1;
}

// Print results
for(vector&lt;string&gt;::iterator iterTxt = vecTxtFiles.begin();
  iterTxt != vecTxtFiles.end();
  ++iterTxt)
cout &lt;&lt; *iterTxt &lt;&lt; endl;

// Wait for keystroke
_getch();

return 0;
}
</code></pre>

<p>And the error message:</p>

<p>error C2784: 'std::basic_string&lt;_Elem,_Traits,_Alloc> 
std::operator +(const std::basic_string&lt;_Elem,_Traits,_Alloc> &amp;,
const std::basic_string&lt;_Elem,_Traits,_Alloc> &amp;)' :
 could not deduce template argument for 'const std::basic_string&lt;_Elem,_Traits,_Alloc> &amp;'
 from 'WCHAR [260]' 
c:\documents and settings\compaq\my documents\visual studio 2008\projects\finaldesktop\finaldesktop.cpp 41  Finaldesktop</p>
