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