我试图在 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。