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

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

Les seules signatures standard pour main sont:

 int main(void); int main(int argc, char *argv[]); 

Cependant, une implémentation autonome peut fournir des extensions / autoriser d’autres signatures. Mais ceux-ci ne sont pas garantis pour être portables. wmain ressemble à un truc Windows / VS. Il n’y a pas beaucoup de chance que cela fonctionne sur un * nix / GNU GCC.

La signature wmain existe dans Windows pour gérer les arguments de ligne de commande à caractères larges. Généralement, alors que les applications Windows préfèrent UTF16, les applications Unix préfèrent UTF8 pour l’encodage de chaînes Unicode. UTF8 utilise des chaînes de caractères régulières, de sorte que la signature main standard est suffisante pour les applications Unix compatibles Unicode.

Si vous souhaitez créer une application de console portable ne nécessitant pas de parameters de ligne de commande Unicode, utilisez main . Si vous avez besoin de parameters de ligne de commande Unicode, vous avez besoin de directives de préprocesseur qui activent la signature appropriée à chaque environnement.

Si vous créez une application d’interface graphique multi-plateforme, utilisez un framework spécial, tel que QT.

wmain () est spécifique à Windows. Tout comme _tmain, si cela compte …