title: Makes sense to use wchar_t/wmain in a windows c++ console application?
body: <p>I have been writing a new command line application in C++. One platform we support is, of course, Windows.</p>
  
  <p>The Windows console, by default, uses the OEM code pages depending on the locale (for example, on my machine it is CP437 / DOS.Western). I think, if it was a Windows Cyrillic version, it would have been CP866, and so on. These OEM code pages contain only 256 characters)</p>
  
  <p>I think what this means is the Windows console translates the input key strokes into characters based on the default code page. (And, depending on the currently selected fonts, if there is a corresponding glyph, it is displayed).</p>
  
  <ol>
  <li>In such a case, whether does it makes sense to use wmain/wchar_t and wide char types in my application?</li>
  <li>Is there any advantage of using wide types? Or is there any grave problem if just char * is used?</li>
  <li>When wide char types are used, what is the encoding of the command line arguments and environment strings - (wchar_t * argv[] and wchar_t * envp[]), i mean. Are they converted to UTF-16 by Windows CRT, or are they untouched?</li>
  </ol>
  
  <p>Thanks for your contributions.</p>