在Windows上使用MinGW进行全球化

我有一个使用MinGW C ++编译器构build的应用程序,它的工作方式与grep-acommand类似:

myapp -e '.*' *.txt 

-e开关之后的东西是一个正则expression式,之后的东西是文件名模式。 看来,MinGW自动扩展(在UNIX方面globs)的命令行,所以我的正则expression式得到改变。 我发现,通过设置全局variables_CRT_glob为零,我可以closures这种行为。 这对于bash和其他合理的shell用户来说可以,因为shell会扩展文件模式。 但是,对于MS cmd.exe用户,它看起来像我将不得不自己扩展文件模式。

所以我的问题 – 有没有人知道一个通​​用的库(或在MinGW设施)做部分命令行扩展? 我知道Windows CRT的_setargvfunction,但是扩展了完整的命令行。 请注意,我已经看到了这个问题 ,但它并没有解决部分扩展问题。

我已经结束了使用条件编译为我的应用程序的Windows版本写我自己的globbing代码。 这很容易,因为我有我自己的CommandLine类,它从main()封装了argc和argv。 不过,我想知道其他解决scheme。

<glob.h>具有globglobfree以及glob大量标志。

我不知道我是否完全理解你的问题,但在Windows中,你应该能够使用WIN32 API中的FindFirstFile / FindNextFile函数进行循环。 老实说,我不知道他们的globing能力是否与glob()相差无几,但你可以试试看