ファイル名の半角スペースについて
前回、exeファイルにドラッグすることで動作するプログラム再質問 をした者です。本当に何度もすみません。
前回から調べた結果「ファイル名に日本語を指定したとき」ではなく、「ファイル名に半角スペースを指定したとき」上手くいかないということが解りました。
DOSでは半角スペースが区切り記号になってしまうことが影響しているのでしょうか?
一般的にデスクトップにデータファイルを作成すると「Documents and Settings」の下部におかれます。この場合、どうしても半角スペースを含んでしまいます。しかし、MicroSoftWordでは、デスクトップにおかれた名前に半角スペースを含むdocファイルをWORD.exeのアイコン上にドラッグすることでファイルを開くことができます。と言うことは何か解決策があるはずなのですが・・・・・・
お手数をお掛けして申し訳ございませんが、何卒宜しくお願い申し上げます。参考のためにソースプログラムを載せておきます。
#include <windows.h>
#include <tchar.h>
int WINAPI _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow){
HANDLE hfile;
hfile = CreateFile(lpCmdLine,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_READONLY,NULL);
if(hfile == INVALID_HANDLE_VALUE){
MessageBox(NULL,_T("error"),NULL,MB_OK);
return false;
}
//ここで処理をします(今回は省略させていただきました)
return 0;
}
開発環境はVisualC++2008ExpressEditionです。
このプログラムをビルド後、exeファイル上に 「a a」のように半角スペースを含むファイルをドラッグするとerrorになります。
お礼
早速にありがとうございます。 ダブルコーティションで解決をしました。 しかし、以前はその必要が無かったのに、何故でしょう? もしかたら、このところPCに違った意味で不具合が度々発生しているので その影響だったかもしれません。 いずれにせよ、助かりました。重ねて御礼申し上げます。