C++ 解析命令行

标签 c++ visual-c++ command-line command-prompt

我试图在 C++ 程序中运行两个命令行,但遇到了一个奇怪的错误。我要运行的命令行是

vlc -vvv dshow:// :dshow-vdev='USB Video Device' :dshow-adev=""  :live-caching=50 :sout=#transcode{vcodec=WMV2,vb=800,acodec=wma2,ab=128,channels=2,samplerate=44100}:duplicate{dst=udp{dst=localhost:1234},dst=display} :sout-keep

vlc -vvv udp://@localhost:1234:network-caching=50

它们都在命令提示符下运行良好。但是当使用 C++ 系统 shell 调用来运行这些时,第一个失败,而第二个有效。我在 C++ 中运行它们的方式如下:

system( "\"G:/Program Files/VideoLAN/VLC/vlc\" -vvv dshow:// :dshow-vdev=\"USB Video Device\" :dshow-adev=\"none\"  :live-caching=50 :sout=#transcode{vcodec=WMV2,vb=800,acodec=wma2,ab=128,channels=2,samplerate=44100}:duplicate{dst=udp{dst=localhost:1234},dst=display}:sout-keep");

system( "\"G:/Program Files/VideoLAN/VLC/vlc\" -vvv udp://@localhost:1234:network-caching=50");

第一个命令抛出错误“G:/Program 未被识别为内部或外部命令、可运行程序或批处理文件。”,这很奇怪,因为两个命令处理文件路径的方式是相同的。请让我知道这样做的原因。 计算机运行的是 Windows XP,我使用的是 Microsoft Visual Studio 2010。

最佳答案

替换

system( "\"G:/Program Files/VideoLAN/VLC/vlc\" -vvv dshow:// :dshow-vdev=\"USB Video Device\" :dshow-adev=\"none\"  :live-caching=50 :sout=#transcode{vcodec=WMV2,vb=800,acodec=wma2,ab=128,channels=2,samplerate=44100}:duplicate{dst=udp{dst=localhost:1234},dst=display}:sout-keep");

system( "\"G:/Program Files/VideoLAN/VLC/vlc\" -vvv udp://@localhost:1234:network-caching=50");

system( "G:\\\"Program Files\"\\VideoLAN\\VLC\\vlc -vvv dshow:// :dshow-vdev=\"USB Video Device\" :dshow-adev=\"none\"  :live-caching=50 :sout=#transcode{vcodec=WMV2,vb=800,acodec=wma2,ab=128,channels=2,samplerate=44100}:duplicate{dst=udp{dst=localhost:1234},dst=display}:sout-keep");

system( "G:\\\"Program Files\"\\VideoLAN\\VLC\\vlc -vvv udp://@localhost:1234:network-caching=50");

关于C++ 解析命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19829509/

相关文章:

c++ - 什么是 "Expression SFINAE"?

c++ - 如何使用 ShellExecute 在 Windows 中使用 C++ 打开 html 文件?

c++ - 单个连接上的多个数据库事务

c++ - 在无效对象上调用成员函数

c++ - 为什么 GCC 似乎没有文件系统标准库?

c# - 如何从命令行运行已编译的 Blazor Web 客户端?

c# - 通过命令行仅构建 VS 安装项目

linux - 如何按名称而不是按固定列从类似 JSON 的文本中提取字段?

c++ - 从模板继承 : scope error?

c++ - 如何创建类模板数组?