在网上搜索了两天,各种方法都有,不过貌似都存在这样那样的问题……
在VC/MFC中获得传给程序的参数,最靠谱的方法,貌似就是调用系统api:"GetCommandLine()"。
这个函数能够获得传递给程序的整个命令行,当然我们需要的不仅仅是如此,还要把参数分成一个一个的,所以有了这一个系统api:"CommandLineToArgvW()"
通过这两个api就能够正常的获得传递给程序的参数了。
代码如下:
LPTSTR cmd = ::GetCommandLine();
int argc = 0;
WCHAR * const *argv;
argv = ::CommandLineToArgW(cmd, &argc);
然后就可以使用了
在网上看到有手动去使用strtok来分割“GetCommandLine”获得的命令行的方法,这种方法有个缺陷,就是当程序的路径中有空格的时候,就会出现错误。