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

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

10
задан hippietrail 30 March 2011 в 13:12
поделиться

3 ответа

Единственными стандартными подписями для main являются:

int main(void);
int main(int argc, char *argv[]);

Однако, отдельная реализация может предоставлять расширения/разрешать другие подписи. Но они не гарантируют переносимость. wmain выглядит как вещь для Windows/VS. Мало шансов, что это будет работать на *nix/GNU GCC.

10
ответ дан 3 December 2019 в 17:58
поделиться

Сигнатура wmain существует в Windows для обработки широкосимвольных аргументов командной строки. Как правило, если приложения Windows предпочитают UTF16, то приложения Unix предпочитают UTF8 для кодирования строк Unicode. В UTF8 используются обычные строки символов char, поэтому для Unix-приложений с поддержкой Unicode достаточно стандартной сигнатуры main.

Если вы хотите сделать переносимое консольное приложение, не требующее параметров командной строки Unicode, используйте main. Если вам нужны параметры командной строки Unicode, то вам нужны директивы препроцессора, которые будут включать сигнатуру, соответствующую каждой среде.

Если вы создаете кроссплатформенное приложение с графическим интерфейсом, используйте специальный фреймворк, например QT.

10
ответ дан 3 December 2019 в 17:58
поделиться

wmain () зависит от Windows. Как и _tmain, если это важно ...

2
ответ дан 3 December 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: