Peut-on utiliser les fonctions wmain () avec les compilateurs Unix ou cela fonctionnera uniquement sur Windows?
-
19-09-2019 - |
Question
Peut-on utiliser wmain () fonctions avec les compilateurs Unix ou cela fonctionnera uniquement sur \ pour Windows?
La solution
Les seules signatures standard pour main
sont:
int main(void);
int main(int argc, char *argv[]);
Cependant, une mise en œuvre pose libre peut fournir des extensions / permettre à d'autres signatures. Mais ceux qui ne sont pas guranteed pour être portables. wmain
ressemble à une chose de Windows / VS. Il n'y a pas beaucoup de chance que cela fonctionne sur un * nix / GNU GCC.
Autres conseils
La signature de wmain
existe dans Windows pour gérer les arguments de ligne de commande de caractères larges. En général, alors que les applications Windows préfèrent UTF16, les applications Unix préfèrent UTF8 pour l'encodage de chaîne Unicode. UTF8 utilise des chaînes régulières de caractères char
, de sorte que la signature standard main
suffit pour appications Unix compatibles Unicode.
Si vous voulez faire une application console portable qui ne nécessite pas de paramètres de ligne de commande Unicode, utilisez main
. Si vous avez besoin de paramètres de ligne de commande Unicode, alors vous avez besoin des directives préprocesseur qui permettront la signature appropriée à chaque environnement.
Si vous faites une application graphique multi-plateforme, utilisez un cadre spécial, comme l'intervalle QT.
wmain () est spécifique à Windows. Tout comme _tmain, si cela importe ...