C++ 正确使用argvw的命令行?

C++ 正确使用argvw的命令行?,c++,winapi,C++,Winapi,解析路径包含空格的进程的命令行参数时,该路径由CommandLineToArgvW拆分为多个部分 所有Windows的C:驱动器上都存在一个名为“程序文件”的文件夹 …沃特 MSDN页面没有提到这是一个问题。我只是用错了这个函数吗?否则,我该如何预测哪些单词是路径的一部分?命令行到argvw在空格上拆分行-如果需要参数(或程序名)包含空格,则需要用引号将其括起来 C:\Program Files-argv[0]=C:\Program,argv[1]=Files “C:\Program File

解析路径包含空格的进程的命令行参数时,该路径由CommandLineToArgvW拆分为多个部分

所有Windows的C:驱动器上都存在一个名为“程序文件”的文件夹

…沃特


MSDN页面没有提到这是一个问题。我只是用错了这个函数吗?否则,我该如何预测哪些单词是路径的一部分?

命令行到argvw
在空格上拆分行-如果需要参数(或程序名)包含空格,则需要用引号将其括起来

  • C:\Program Files
    -argv[0]=C:\Program,argv[1]=Files
  • “C:\Program Files”
    -argv[0]=C:\Program Files

请注意,您可以使用
GetModuleFileName
获取进程的文件路径-您可以这样做来确定路径是否包含空格,并在解析之前根据需要在命令行中插入引号。

这一切都很好,但是如果我不知道这条路的尽头在哪里,我怎么知道把引语放在哪里呢?哦。我想我会去的。(出于某种原因,我还得到了一堆环境变量,我该如何处理它们?
ExpandEnvironmentStrings
。好吧,我一定是疯了。突然之间,lpCmdLine只是一个空字符串,它以前工作得很好,我没有对项目设置或预处理器宏进行任何更改…它是从哪里来的?如果使用传递到
WinMain
的字符串,最好使用
GetCommandLine
函数。