Können wir wmain () -Funktionen mit Unix-Compiler verwenden, oder es wird nur auf Windows arbeiten?
-
19-09-2019 - |
Frage
Können wir wmain () -Funktionen mit Unix-Compiler oder es wird nur auf \ für Windows arbeiten?
Lösung
Die einzige Standard-Signaturen für main
sind:
int main(void);
int main(int argc, char *argv[]);
Allerdings ist eine freistehende Implementierung Erweiterungen zur Verfügung stellen kann / zulassen, dass andere Signaturen. Aber das ist nicht tragbar sein guranteed. wmain
sieht aus wie ein Fenster / VS Sache. Es gibt nicht viel Chance, diese auf einem * nix / GNU GCC funktioniert.
Andere Tipps
Die wmain
Signatur existiert in Windows Griff Breitzeichenbefehlszeilenargumente. Im Allgemeinen, während Windows-Anwendungen bevorzugen UTF16, Unix-Anwendungen bevorzugen UTF8 für Unicode-String-Codierung. UTF8 verwendet reguläre char
Zeichenketten, also die Standard-main
Unterschrift genügt für Unicode-fähigen Unix appications.
Wenn Sie eine tragbare Konsole-Anwendung machen möchten, die nicht Unicode-Befehlszeilenparameter erfordert, verwenden main
. Wenn Sie Unicode-Befehlszeilenparameter zu tun, dann müssen Sie Direktiven Präprozessor mit, dass die Signatur entsprechend der jeweiligen Umgebung ermöglichen.
Wenn Sie eine plattformübergreifende GUI-Anwendung machen, verwenden Sie einen besonderen Rahmen, wie QT.
wmain () ist Windows-spezifisch. Genau wie _tmain, wenn diese Fragen ...