• 締切済み

exeファイルにドラッグすることで動作するプログラム再質問

前回、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; } このプログラムのexeファイルのアイコンにデータファイルをドラッグし、処理を行いたいのですが、データファイル名に日本語が含まれると hfile が INVALID_HANDLE_VALUEとなります。 データファイル名が英字のみの場合は上手くいきます。文字セットはUnicode文字セットを使用しています。 どなたかご教授お願い申し上げます。

みんなの回答

回答No.1

#include <windows.h> #include <tchar.h> を #include <tchar.h> #include <windows.h> にしてみてはどうか? windows.hの前にtchar.hをインクルードしておかないと「後からtchar.hをインクルードされても、windows.hに対しては手遅れ」なのではないかと?

関連するQ&A

専門家に質問してみよう