Pouvons-nous utiliser les fonctions wmain() avec les compilateurs Unix ou cela fonctionnera uniquement sur \ pour Windows?Pouvons-nous utiliser les fonctions wmain() avec les compilateurs Unix ou cela fonctionnera uniquement sur Windows?
Répondre
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-ci ne sont pas garantis d'être portables. wmain
ressemble à une chose Windows/VS. Il n'y a pas beaucoup de chance que cela fonctionne sur un * nix/GNU GCC.
wmain() est spécifique à Windows. Tout comme _tmain, si cela est important ...
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 le codage de chaîne Unicode. UTF8 utilise des chaînes de caractères char
, donc la signature standard main
est suffisante pour les applications Unix compatibles Unicode.
Si vous souhaitez créer une application de console portable ne nécessitant pas de paramètres de ligne de commande Unicode, utilisez main
. Si vous avez besoin de paramètres de ligne de commande Unicode, vous avez besoin de directives de préprocesseur qui activeront la signature appropriée à chaque environnement.
Si vous créez une application graphique multiplate-forme, utilisez un cadre spécial, tel que QT.
'git' n'est pas un compilateur. – kennytm