Quelle est l’alternative à la fonction getopt sur Windows c ++?

Le code ci-dessous j’utilise Posix C:

while ((opt = getopt(argc, argv, "a:p:h")) != -1) 

Comment puis-je porter ce code sur Windows C ++ en utilisant une autre fonction?

Merci

Si vous aviez recherché, vous auriez trouvé un autre thread qui passe par certaines bibliothèques de compatibilité pour getopt, entre autres implémentations, pour les systèmes Windows.

getopt.h: Comstackr Linux C-Code dans Windows

Sur une autre note, vous pouvez toujours utiliser les fonctions va_arg, va_list, va_start et va_end pour traiter également les arguments.

 /* va_arg example */ #include  /* printf */ #include  /* va_list, va_start, va_arg, va_end */ int FindMax (int n, ...) { int i,val,largest; va_list vl; va_start(vl,n); largest=va_arg(vl,int); for (i=1;ival)?largest:val; } va_end(vl); return largest; } int main () { int m; m= FindMax (7,702,422,631,834,892,104,772); printf ("The largest value is: %d\n",m); return 0; } 

Référence: http://www.cplusplus.com/reference/cstdarg/va_list/

Microsoft a fourni une implémentation agréable (ainsi que d’autres aides) dans le projet open source IoTivity ici que vous pourriez éventuellement réutiliser (en attendant les conditions de licence que vous pourriez avoir):

Regardez les répertoires “src” et “include” ici pour “getopt.h / .c”.

https://github.com/iotivity/iotivity/tree/master/resource/c_common/windows