title: Accepting arguments in a console application with managed code in C++
body: <p>I attempted to use this code to accept arguments from a console application. Unfortunately all I get are boolean values for some weird reason. I'm not sure what's happening. I think I might be mixing namespaces or something. Anyone?</p>
  
  <pre><code>#include "stdafx.h"
  
  using namespace System;
  using namespace System::Net;
  using namespace System::IO;
  using namespace System::Collections;
  using namespace System::Text;
  
  void uploadFile(String^ strFileName, String^ strServerName, String^ strUserName, String^         strPassword);
  void prompt();
  
  int main(int argc, char* argv[])
  {
  if (argc &lt; 9)
  {
      prompt();
  }
  else if (argc == 9)
  {
      char* fileName;
      char* serverName;
      char* userName;
      char* password;
  
      for (int i = 1; i &lt; argc; i++)
      {
          if (argv[i] == "-f")
              fileName = argv[i + 1];
          else if (argv[i] == "-s")
              serverName = argv[i + 1];
          else if (argv[i] == "-u")
              userName = argv[i + 1];
          else if (argv[i] = "-p")
              password = argv[i + 1];
          else
              prompt();
          Console::WriteLine(argv[i]);
      }
      String ^strFileName = gcnew String(fileName);
      String ^strServerName = gcnew String(serverName);
      String ^strUserName = gcnew String(userName);
      String ^strPassword = gcnew String(password);
      Console::WriteLine(argv[1]);
      Console::WriteLine(strFileName);
      uploadFile(strFileName, strServerName, strUserName, strPassword);
  }
  else
  {
      prompt();
  }
  }
  
  void uploadFile(String^ strFileName, String^ strServerName, String^ strUserName, String^ strPassword)
  {
  if (!strServerName-&gt;StartsWith("ftp://"))
  {
      String^ host = "ftp://";
      host += strServerName;
      strServerName = host;
  }
  String^ path = Directory::GetCurrentDirectory();
  WebClient^ wclient = gcnew WebClient();
  wclient-&gt;Credentials = gcnew NetworkCredential(strUserName, strPassword);
  String^ destFileName = path;
  destFileName += strFileName;
  Console::WriteLine(destFileName);
  Console::WriteLine(strServerName);
  /*array&lt;Byte&gt;^response = wclient-&gt;UploadFile(strServerName, destFileName);
  if (response-&gt;Length &gt; 0)
  {
      ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
      String^ decoded = ascii-&gt;GetString(response);
      Console::WriteLine("Response: {0}", decoded);
  }*/
  }
  void prompt()
  {
  Console::WriteLine("Usage: ftpCLI.exe -f &lt;filename&gt; -s &lt;server&gt; -u &lt;username&gt; -p    &lt;password&gt;\n");
  Console::ReadLine();
  Environment::Exit(1);
  }
  </code></pre>
  
  <p>And for anyone interested here is the program with the resolution implemented and completed.</p>
  
  <pre><code>#include "stdafx.h"
  #include &lt;string.h&gt;
  
  using namespace System;
  using namespace System::Net;
  using namespace System::IO;
  using namespace System::Collections;
  using namespace System::Text;
  
  void uploadFile(String^ strFileName, String^ strServerName, String^ strUserName, String^     strPassword);
  void prompt();
  
  int main(int argc, char* argv[])
  {
  if (argc &lt; 9)
  {
      prompt();
  }
  else if (argc == 9)
  {
      char* fileName;
      char* serverName;
      char* userName;
      char* password;
  
      for (int i = 1; i &lt; argc; i++)
      {
          if (strcmp(argv[i], "-f") == 0)
              fileName = argv[i + 1];
          else if (strcmp(argv[i], "-s") == 0)
              serverName = argv[i + 1];
          else if (strcmp(argv[i], "-u") == 0)
              userName = argv[i + 1];
          else if (strcmp(argv[i], "-p") == 0)
              password = argv[i + 1];
          Console::WriteLine(argv[i]);
      }
      String ^strFileName = gcnew String(fileName);
      String ^strServerName = gcnew String(serverName);
      String ^strUserName = gcnew String(userName);
      String ^strPassword = gcnew String(password);
      Console::WriteLine(argv[1]);
      uploadFile(strFileName, strServerName, strUserName, strPassword);
  }
  else
  {
      prompt();
  }
  }
  
  void uploadFile(String^ strFileName, String^ strServerName, String^ strUserName, String^ strPassword)
  {
  if (!strServerName-&gt;StartsWith("ftp://"))
  {
      String^ host = "ftp://";
      host += strServerName;
      strServerName = host;
  }
  String^ path = Directory::GetCurrentDirectory();
  WebClient^ wclient = gcnew WebClient();
  wclient-&gt;Credentials = gcnew NetworkCredential(strUserName, strPassword);
  String^ destFileName = strServerName;
  destFileName += "/" + strFileName;
  array&lt;Byte&gt;^response = wclient-&gt;UploadFile(destFileName, strFileName);
  if (response-&gt;Length &gt; 0)
  {
      ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
      String^ decoded = ascii-&gt;GetString(response);
      Console::WriteLine("Response: {0}", decoded);
  }
  }
  void prompt()
  {
  Console::WriteLine("Usage: ftpCLI.exe -f &lt;filename&gt; -s &lt;server&gt; -u &lt;username&gt; -p   &lt;password&gt;\n");
  Console::ReadLine();
  Environment::Exit(1);
  }
  </code></pre>