我想在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 is not recognized as an internal or external command, operable program or batch file.”,这很奇怪,因为这两个命令处理文件路径的方式是相同的。请告诉我原因。计算机运行在Windows XP系统上,我正在使用Microsoft Visual Studio 2010。