C++でプログラムをDOSベースで作成しています。
作成したプログラムは、実行後あるファイルを入力させて
それを処理するものです。
現在のところ、DOS窓でファイル名を手入力で入力し、ファイル
処理を実行させています。
これを作成された.EXEファイルに直接処理させたいファイルを
ドラッグ&ドロップすることによって実行させる方法はありま
せんでしょうか?
どなたかよろしくお願いします。
コンソールアプリのことですよね?
ちょっと試してみましたが、
ドロップされたファイル名はargvに格納されてるみたいです。
argv[1]にフルパスでファイル名が入っていました。
今、これをファイル名だけにするようにすればどうしたらよいのか
思案中です。
いい方法はありますか?
strrchr()を使って、最後に出てくる「\」を検索すれば、その次の文字から文字列の最後
までがファイル名。
>strrchr()を使って、最後に出てくる「\」を検索
strrchr(argv[1], \)とすると
「エスケープシーケンスの使い方が正しくない」
と怒られます。
「¥」ってどうやって検索すればよいでしょうか?
strrchr( argv[1], '\\' ); という風に。
>strrchr( argv[1], '\\' ); という風に。
ありがとうございます。
できました。
で、もうひとつ甘えていいですか?
今度は、ファイル名を除いたプルパスを得るにはどうしたら
よいでしょうか?
>もうひとつ甘えていいですか?
なんでもかんでも訊いてしまえばそのものズバリ答えてくれる便利なところと思わないよ
うに。
C言語において文字列とは「あるアドレスからNULL文字('\0')まで」ということが理解で
きれば自ずとどうすればいいか見えてくるはずです。
ありがとうございました。