- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FindFirstFileについて教えてください。)
FindFirstFileについて教えてください
このQ&Aのポイント
- Visual Studio C++ 2010 Expressを利用して、C言語のプログラムを作成しています。
- FindFirstFileを使ってファイルのリストを取得できませんでしたが、コマンドプロンプトでは正常に取得できました。
- プロジェクトのプロパティの設定に問題がある可能性があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>FindFirstFileに指定した引数の文字列は、"C:\\Temp\\*.avi"などです。 なんというか、お約束ですが… VC++2010EEでの文字セットは何になっていますか? デフォルトのままだと「UNICODE文字セットを使用する」になっているかと思われますが。 # で…そのまんま"C:\\Temp\\*.avi"の指定だと警告かエラーかになるかと……。
その他の回答 (1)
- hidebun
- ベストアンサー率50% (92/181)
回答No.1
INVALID_HANDLE_VALUEの時、さらに、GetLastError()で、詳細なエラー要因を 取得できるはずです。それで調べてみましょう。 カレントパスの問題ではないですか?
質問者
補足
お返事ありがとうございます。 GetLastError()で値とってみると ERROR_FILE_NOT_FOUND で指定されたファイルが見つかりません、となっていました。 FindFirstFileに指定した引数の文字列は、"C:\\Temp\\*.avi"などです。 この.aviのファイルは、いくつか存在ます。 カレントパスの問題かとも思って、SetCurrentDirectory()で、"C:\\Temp"と指定したりもしましたが、GetLastError()の戻り値は、 ERROR_FILE_NOT_FOUND のままでした。 他に何か見るべきところはあるでしょうか? 同じプログラムで、コマンドプロンプト上でコンパイルしたときには問題にならないので、何が違うのか良く分からないです。
お礼
ありがとうございます。 おっしゃる通り、プロジェクトのプロパティの文字セットを「UNICODE文字セットを使用する」にしてました。 「マルチバイト文字セットを使用する」に変更して、動作するようになりました。 久しぶりのVisual Studioのプログラミングで、この変更をするのをすっかり失念していました。