Можем ли мы использовать функции wmain() с компиляторами Unix или работать только с окнами?

Можно ли использовать функции wmain() с компиляторами Unix или работать только в \for windows?

Ответ 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, если это имеет значение...