• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FindFirstFileについて教えてください。)

FindFirstFileについて教えてください

このQ&Aのポイント
  • Visual Studio C++ 2010 Expressを利用して、C言語のプログラムを作成しています。
  • FindFirstFileを使ってファイルのリストを取得できませんでしたが、コマンドプロンプトでは正常に取得できました。
  • プロジェクトのプロパティの設定に問題がある可能性があります。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>FindFirstFileに指定した引数の文字列は、"C:\\Temp\\*.avi"などです。 なんというか、お約束ですが… VC++2010EEでの文字セットは何になっていますか? デフォルトのままだと「UNICODE文字セットを使用する」になっているかと思われますが。 # で…そのまんま"C:\\Temp\\*.avi"の指定だと警告かエラーかになるかと……。

artemis3225
質問者

お礼

ありがとうございます。 おっしゃる通り、プロジェクトのプロパティの文字セットを「UNICODE文字セットを使用する」にしてました。 「マルチバイト文字セットを使用する」に変更して、動作するようになりました。 久しぶりのVisual Studioのプログラミングで、この変更をするのをすっかり失念していました。

その他の回答 (1)

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.1

INVALID_HANDLE_VALUEの時、さらに、GetLastError()で、詳細なエラー要因を 取得できるはずです。それで調べてみましょう。 カレントパスの問題ではないですか?

artemis3225
質問者

補足

お返事ありがとうございます。 GetLastError()で値とってみると ERROR_FILE_NOT_FOUND で指定されたファイルが見つかりません、となっていました。 FindFirstFileに指定した引数の文字列は、"C:\\Temp\\*.avi"などです。 この.aviのファイルは、いくつか存在ます。 カレントパスの問題かとも思って、SetCurrentDirectory()で、"C:\\Temp"と指定したりもしましたが、GetLastError()の戻り値は、 ERROR_FILE_NOT_FOUND のままでした。 他に何か見るべきところはあるでしょうか? 同じプログラムで、コマンドプロンプト上でコンパイルしたときには問題にならないので、何が違うのか良く分からないです。

専門家に質問してみよう