Можем ли мы использовать функции wmain() с компиляторами Unix или они будут работать только в Windows?
-
19-09-2019 - |
Вопрос
Можем ли мы использовать функции wmain() с компиляторами Unix или они будут работать только в Windows?
Решение
Единственные стандартные подписи для 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
символьные строки, поэтому стандарт main
подписи достаточно для приложений Unix, поддерживающих Unicode.
Если вы хотите создать портативное консольное приложение, не требующее параметров командной строки Unicode, используйте main
.Если вам нужны параметры командной строки Unicode, вам потребуются директивы препроцессора, которые позволят использовать подпись, соответствующую каждой среде.
Если вы создаете кроссплатформенное приложение с графическим интерфейсом, используйте специальную среду, например QT.
wmain() зависит от Windows.Точно так же, как _tmain, если это имеет значение...