C++ 在Windows c++;?
下面的代码是我使用的Posix C:C++ 在Windows c++;?,c++,windows,posix,getopt,C++,Windows,Posix,Getopt,下面的代码是我使用的Posix C: while ((opt = getopt(argc, argv, "a:p:h")) != -1)
while ((opt = getopt(argc, argv, "a:p:h")) != -1)
<如何使用可选的函数将代码导入到Windows C++中?
谢谢如果您搜索过,您会找到另一个线程,该线程会检查getopt的一些兼容性库,以及基于Windows的系统的其他实现 另一方面,您也可以使用va_arg、va_list、va_start和va_end函数来处理参数
/* va_arg example */
#include <stdio.h> /* printf */
#include <stdarg.h> /* 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;i<n;i++)
{
val=va_arg(vl,int);
largest=(largest>val)?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;
}
/*va_参数示例*/
#包括/*printf*/
#包括/*va_列表、va_开始、va_参数、va_结束*/
int FindMax(int n,…)
{
int i,val,最大值;
va_列表vl;
va_启动(vl,n);
最大值=va_arg(vl,int);
对于(i=1;ival)?最大值:val;
}
va_端(vl);
回报最大;
}
int main()
{
int m;
m=FindMax(77024222631834892104772);
printf(“最大值为:%d\n”,m);
返回0;
}
参考资料:微软在开源IoTivity项目中提供了一个很好的实现(以及一些其他帮助),您可以在这里重复使用(等待您的任何许可要求): 看看“getopt.h/.c”的“src”和“include”目录
getopt用于解释存储在单指针数组中的文本参数,最有可能解析命令行参数。可变函数不相似或不兼容。我认为OP在某些windows DLL中已经在寻找一个类似的函数,他们可以编写一个小的粘合函数来适应现有代码,而不是重新实现getopt。如果有人正在寻找在两种平台上都能工作的函数,您可以使用类似的函数。