c++ - 正确使用 CommandLineToArgvW?

标签 c++ winapi

解析路径中包含空格的进程的命令行参数时,路径会被CommandLineToArgvW分割成多段。

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

...哇

MSDN 页面没有提到这是一个问题。我只是使用错误的功能吗?否则我应该如何预测哪些词是路径的一部分?

最佳答案

CommandLineToArgvW 以空格分隔行 - 如果您需要一个参数(或程序名称)来包含空格,您需要用引号将其括起来。

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

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

关于c++ - 正确使用 CommandLineToArgvW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111868/

相关文章:

c++ - fftw3 for poisson with dirichlet boundary condition for all side of computational domain

c++ - 为什么我可以将可调用目标存储在与类型不匹配的 std::function 中

c++ - 在打开 vsync 的情况下执行 glTexImage2D 时出现奇怪的延迟

c++ - SetWindowsHookEx 回调函数不适用于 SYSTEM 权限

winapi - 使用RtlAddFunctionTable的SEH处理程序

android - 如何在 Flutter 的原生 C++ 中使用 OpenCV 4(2021 年)(支持 Flutter 2.0)?

c++ - SQLite blob 数据类型

c++ - RichEdit 的 EM_AUTOURLDETECT 消息可识别链接,但我无法单击它

winapi - 抑制 WM_ERASEBKGND 的正确方法是什么?

c# - 检索没有 Windows 阴影的窗口大小