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

StackOverflow https://stackoverflow.com/questions/2438297

Вопрос

Можем ли мы использовать функции 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, если это имеет значение...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top