2つのパラメーターを使用して実行可能ファイルを呼び出そうとしているC++プログラムがあります。コードはMacでは正常に機能しますが、Windowsではいくつか問題があります。スペースのないパスを使用すると問題なく機能するため、この問題はパラメーター内のスペースに関連していると確信しています。
さらに、送信先をsystem()
印刷してから、コマンドラインでその印刷を実行すると、問題なく動作します。これは些細なことです。
私はこのように電話をかけます:ret = system(cmd.c_str());
そして私がそうするなら:cout << cmd << endl;
私はこのようなものを手に入れるでしょう:
"C:\Program Files (x86)\MyProgram\some_executable.exe" "C:\Users\me\Desktop\files"
引用符が役に立たない理由がわかりませんsystem()
。呼び出しのパスの周りに引用符を含めています。cmdの出力は私が実行しようとしているものとまったく同じですが、機能しません。ただし、そのパスにスペースが含まれていない場合は、正常に実行されます。
スペースを含むパラメータをsystem()
呼び出しに渡すことに関する提案はありますか?