Можно ли использовать функции wmain() с компиляторами Unix или работать только в \for windows?
Можем ли мы использовать функции wmain() с компиляторами Unix или работать только с окнами?
Ответ 1
Единственными стандартными сигнатурами для main
являются:
int main(void);
int main(int argc, char *argv[]);
Однако автономная реализация может предоставлять расширения/разрешать другие подписи. Но они не гарантированы, чтобы быть портативными. wmain
выглядит как вещь Windows/VS. Там не так много шансов, что это будет работать на * nix/GNU GCC.
Ответ 2
Подпись wmain
существует в Windows для обработки аргументов командной строки с широким символом. Как правило, хотя приложения Windows предпочитают UTF16, приложения Unix предпочитают UTF8 для кодировки строки Unicode. UTF8 использует обычные строки символов char
, поэтому стандартная main
подпись достаточно для Unicode-ориентированных приложений Unix.
Если вы хотите создать портативное консольное приложение, которое не требует параметров командной строки Unicode, используйте main
. Если вам нужны параметры командной строки Unicode, вам нужны директивы препроцессора, которые позволят подписи, соответствующие каждой среде.
Если вы создаете кросс-платформенное графическое приложение, используйте специальную фреймворк, например QT.
Ответ 3
wmain() является специфичным для Windows. Точно так же, как _tmain, если это имеет значение...