title: c++: argv contains some spaces
body: <p>I want to pass only ONE parameter containing some spaces to my function main. Here is an example:<br></p>
  
  <pre><code>string param = "{\"abc\" \"de\"}"; // the string is {"abc" "de"}
  boost::replace_all(param, "\"", "\\\""); // now it becomes: {\"abc\" \"de\"}
  boost::replace_all(param, " ", "\\40");  // now it becomes: {\"abc\"\40\"de\"}
  
  ShellExecute(GetDesktopWindow(), "open", "myMainTest.exe", param.c_str(), "", SW_SHOWNORMAL); // execute my function main in another project
  </code></pre>
  
  <p>// in the function main of myMainTest.exe</p>
  
  <pre><code>cout&lt;&lt;argv[1];
  </code></pre>
  
  <p>I got this result:<br></p>
  
  <pre><code>{"abc"\40"de"}
  </code></pre>
  
  <p>It means that the double quote is OK but the space is not.<br></p>