title: TCHAR* to char*
body: <p><code>Error : argument of type "TCHAR *" is incompatible with parameter of type "const char *"
      error in line : if(remove( f ) != 0 )</code>  </p>
  
  <p>I want to convert "TCHAR f[MAX_PATH]" to <code>const char *</code> and pass to "Remove" function:</p>
  
  <pre><code>int _tmain(int argc, TCHAR *argv[])
  {
      WIN32_FIND_DATA ffd;
      LARGE_INTEGER filesize;
      TCHAR szDir[MAX_PATH];
      size_t length_of_arg;
      HANDLE hFind = INVALID_HANDLE_VALUE;
      DWORD dwError=0;
      TCHAR s[MAX_PATH];
      TCHAR f[MAX_PATH];
  
      // If the directory is not specified as a command-line argument,
      // print usage.
  
      if(argc != 2)
      {
          _tprintf(TEXT("\nUsage: %s &lt;directory name&gt;\n"), argv[0]);
          goto l;
      }
  
      // Check that the input path plus 2 is not longer than MAX_PATH.
  
      StringCchLength(argv[1], MAX_PATH, &amp;length_of_arg);
  
      if (length_of_arg &gt; (MAX_PATH - 2))
      {
          _tprintf(TEXT("\nDirectory path is too long.\n"));
          goto l;
      }
  
      _tprintf(TEXT("\nTarget directory is %s\n\n"), argv[1]);
  
      // Prepare string for use with FindFile functions.  First, copy the
      // string to a buffer, then append '\*' to the directory name.
  
      StringCchCopy(szDir, MAX_PATH, argv[1]);
      StringCchCopy(s, MAX_PATH, szDir);
      StringCchCat(szDir, MAX_PATH, TEXT("\\*"));
  
      // Find the first file in the directory.
  
      hFind = FindFirstFile(szDir, &amp;ffd);
  
      if (INVALID_HANDLE_VALUE == hFind)
      {
          ErrorHandler(TEXT("FindFirstFile"));
          return dwError;
      }
  
      // List all the files in the directory with some info about them.
      StringCchCat(s, MAX_PATH, TEXT("/"));
  
      do
      {
          if (ffd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
          {
              _tprintf(TEXT("  %s   &lt;DIR&gt;\n"), ffd.cFileName);
  
  
          }
          else
          {
              StringCchCopy(f, MAX_PATH, s);
              StringCchCat(f, MAX_PATH, ffd.cFileName);
  
              filesize.LowPart = ffd.nFileSizeLow;
              filesize.HighPart = ffd.nFileSizeHigh;
              _tprintf(TEXT("  %s   %ld bytes\n"), ffd.cFileName, filesize.QuadPart);
              _tprintf(f);
  
              if(remove( f ) != 0 )
                  perror( "Error deleting file" );
              else
                  puts( "File successfully deleted" );
  
          }
      }
      while (FindNextFile(hFind, &amp;ffd) != 0);
  
      dwError = GetLastError();
      if (dwError != ERROR_NO_MORE_FILES)
      {
          ErrorHandler(TEXT("FindFirstFile"));
      }
  
      FindClose(hFind);
      return dwError;
  
  l:
      getch();
  }
  </code></pre>