title: Why __tmainCRTStartup call WinMain when _UNICODE defined?
body: <p>You can try this right now.</p>
  
  <p>Define both WinMain and wWinMain abd compile it as a static library.</p>
  
  <p>Make a new project for executable file exe.</p>
  
  <p>Set character set setting UNICODE system.(define _UNICODE)</p>
  
  <p>Link the static library just made.</p>
  
  <p>Then your program starts from WinMain.</p>
  
  <p>Whether the character set is multi-byte or unicode, WinMain is called, when both WinMain and wWinMain is defined.</p>
  
  <p>It happens only when you define WinMain in a static library.</p>
  
  <p>When you define WinMain and wWinMain in a source project including, it works correctly,</p>
  
  <p>unicode system calls wWinMain and multi-byte system calls WinMain.</p>
  
  <p>Why does it happen?</p>