Visual Studio C++ 2010 Expressを利用して、C言語のプログラムを作成しています。
その中でFindFirstFileを使っています。
Visual Studio上でWin32コンソールアプリのプロジェクトを作成して、このプログラムをコンパイルしました。
プロジェクトのプロパティは変更していません。
コンパイルしたものを実行すると戻り値としてINVALID_HANDLE_VALUEが返ってきて、ファイルのリストを取得できませんでした。
一方で、コマンドプロンプト上でMakefileを作成し、同じソースをコンパイルした場合は、ファイルのリストを正常に取得することが出来ます。
従いまして、おそらくプログラムは問題ないと思います。
Visual Studioのプロジェクトで、何かプロパティの設定が必要でしょうか?
実行環境は、Windows7 64-bitです。
何かご存知の方いらっしゃいましたら、教えて頂けますか?
No.2ベストアンサー
- 回答日時:
>FindFirstFileに指定した引数の文字列は、"C:\\Temp\\*.avi"などです。
なんというか、お約束ですが…
VC++2010EEでの文字セットは何になっていますか?
デフォルトのままだと「UNICODE文字セットを使用する」になっているかと思われますが。
# で…そのまんま"C:\\Temp\\*.avi"の指定だと警告かエラーかになるかと……。
ありがとうございます。
おっしゃる通り、プロジェクトのプロパティの文字セットを「UNICODE文字セットを使用する」にしてました。
「マルチバイト文字セットを使用する」に変更して、動作するようになりました。
久しぶりのVisual Studioのプログラミングで、この変更をするのをすっかり失念していました。
No.1
- 回答日時:
INVALID_HANDLE_VALUEの時、さらに、GetLastError()で、詳細なエラー要因を
取得できるはずです。それで調べてみましょう。
カレントパスの問題ではないですか?
この回答への補足
お返事ありがとうございます。
GetLastError()で値とってみると ERROR_FILE_NOT_FOUND で指定されたファイルが見つかりません、となっていました。
FindFirstFileに指定した引数の文字列は、"C:\\Temp\\*.avi"などです。
この.aviのファイルは、いくつか存在ます。
カレントパスの問題かとも思って、SetCurrentDirectory()で、"C:\\Temp"と指定したりもしましたが、GetLastError()の戻り値は、 ERROR_FILE_NOT_FOUND のままでした。
他に何か見るべきところはあるでしょうか?
同じプログラムで、コマンドプロンプト上でコンパイルしたときには問題にならないので、何が違うのか良く分からないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
- C言語・C++・C# visual studioでフォームデザインを作成する時のVB.netとC#の違い 2 2023/06/22 03:04
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- その他(プログラミング・Web制作) Scratchについてです 作ったプログラムをコンピュータに保存してそのまま何もいじらずにそのプログ 1 2022/05/19 18:51
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- その他(プログラミング・Web制作) どうしてもエラーが解決できません。 1 2022/07/23 04:32
- C言語・C++・C# Switch向けにpcでc言語でゲームを作っているのですが、開発環境はWindows10のvisua 1 2022/04/02 07:04
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Makefile作成時の拡張子.oとは?
-
エクセルVBAではRound...
-
「fatal error C1189」を回避す...
-
” OS ビルド ” の意味が分か...
-
構造体をファイルに出力できません
-
VBAを何回も作り直して、容量が...
-
1 つ以上の複数回定義されてい...
-
C++Builderでの警告
-
セミコロンについて
-
PRO*C コンパイルエラー
-
C++コンパイル時に『 C1083: in...
-
[c++] <pthread.h>がinclude で...
-
C言語でヘッダファイルにグロー...
-
コンパイルエラー:ユーザ定義...
-
【VC++6.0(MFC)】警告「LINK : ...
-
C#プログラム実行方法
-
エラー Permission denied
-
C++のhppファイルをCでinclude
-
「猫でもわかるプログラミング...
-
PrintWindowの使用方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
C言語でヘッダファイルにグロー...
-
「fatal error C1189」を回避す...
-
Makefile作成時の拡張子.oとは?
-
” OS ビルド ” の意味が分か...
-
エクセルVBAではRound...
-
1 つ以上の複数回定義されてい...
-
<math.h>があるのにsqrtが・...
-
ILSpyで、デコンパイルできない。
-
[c++] <pthread.h>がinclude で...
-
クリティカルエラー Expressio...
-
マクロ コンパイルがグレーバック
-
セミコロンについて
-
C++コンパイル時に『 C1083: in...
-
外部シンボル "_main"は未解決です
-
コンパイルエラー:ユーザ定義...
-
ビルドとリビルドの違いを教え...
-
PRO*C コンパイルエラー
-
【VC++6.0(MFC)】警告「LINK : ...
-
戻り値について
おすすめ情報