Peut-on utiliser les fonctions wmain () avec les compilateurs Unix ou cela fonctionnera uniquement sur Windows?

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

Question

Peut-on utiliser wmain () fonctions avec les compilateurs Unix ou cela fonctionnera uniquement sur \ pour Windows?

Était-ce utile?

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 ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top