Нет смысла перегружать WinMain, эта функция вызывается только один раз при запуске. Если вы хотите, чтобы он работал в сборках UNICODE и сборках, отличных от UNICODE, вы должны сделать suse, чтобы он принимал wchar_t * и char * для параметра pszCmdLine:
int WINAPI _tWinMain(
HINSTANCE hInstanceExe,
HINSTANCE,
PTSTR pszCmdLine,
int nCmdShow);