• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CreateProcessでの実行ファイルの操作について)

CreateProcessでの実行ファイルの操作について

このQ&Aのポイント
  • CreateProcessでは相対パスや絶対パスは使えないのか?
  • リダイレクトも使えないのか?
  • CreateProcessでの実行ファイルの操作についての質問です。カレントディレクトリに実行ファイルをいれておいて、実行してくれるのですが、相対パスや絶対パスを使うと実行されないようです。また、リダイレクトも使えないようです。VC++ 6.0 Win98環境で試しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> もし、お時間がありましたら部分的に囲み方法ではダメなのか教えてもらえないでしょうか? 「*何故* ダメなのか?」ってこと? 想像でしかないですが、解釈する人が違うから、としか言いようが無いですね。 コマンドラインからの場合は、cmd.exe (もしくは Shell) が解釈している。CreateProcess の場合には違う人が解釈している、と。

Nickee
質問者

お礼

もっと勉強して理解していこうと思います。 ありがとうございました。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> 相対パスが使えないのはわかるのですが、絶対パスが使えないのがわかりません。 ああ、きちんと質問を読んでなかった。 私が最初に書いたのは、第一引数のことでした。これは NULL にできますね。 であれば、空白を含むディレクトリの扱いが良くないのでしょう。 ダブルクォートで、My Documents だけをくくるのではなく、コマンド全体をくくってください。 char szCommand[] = "\"c:\\My Documents ... \\eee\"";

Nickee
質問者

お礼

出来ました!ありがとうございます。 でも、なぜ、My Documentsの部分だけではダメかわかりません。コマンドライン上だったら大丈夫なのに。。 szCommandの部分がコマンドライン上の命令と一致していると考えていたのですが、微妙に違うみたいですね。 もし、お時間がありましたら部分的に囲み方法ではダメなのか教えてもらえないでしょうか? 明日には締め切りたいと思います。 ありがとうございました。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> CreateProcessでは、相対パスや絶対パスは使えないのでしょうか? 使えません。マニュアルに「フルパスで」と書いてありますね。 > あと、リダイレクトも使えないのでしょうか?(動作しなかったので・・) ">" を書いてもリダイレクトにはなりません。STARTUPINFO を利用します。

Nickee
質問者

補足

回答ありがとうございます。 >使えません。マニュアルに「フルパスで」と書いてありますね。 相対パスが使えないのはわかるのですが、絶対パスが使えないのがわかりません。 フルパスは絶対パスのことじゃないんですか?

関連するQ&A

専門家に質問してみよう