我想将
WinMain
的cmdLine
参数转换为argc
和argv
,以便我可以使用我编写的针对控制台应用程序的参数解析函数。这本来很简单,但我也想支持“引号”。例如:
test.exe test1 test2 "testing testing"
应该是:argv[0] = "test.exe"; argv[1] = "test1"; argv[2] = "test2"; argv[3] = "testing testing";
我知道cmdLine没有程序名(argv[0]),这不重要,我可以使用一个虚拟值。
我想用正则表达式来处理它,(("[^"]+")\s+)|(([^\s]+)\s*)
,但我不确定它能否很好地工作.. 可能效果不太好?在windows api中有什么函数可以做到这一点吗?谢谢
CommandLineToArgvW
,因为你不必担心调用LocalFree
并且由于__argv[__argc]
和__wargv[__argc]
被设置为NULL
。 - jamesdlinenvp
怎么办?编辑:好的,_CRTIMP extern char** environ;
就可以解决了,我相信。 - csl