過去の投稿記事 new!
・【画像】漫画でわかる外国人参政権
・東京電力のHPで停電状態が確認できたり(サービス再開!)
・戦国時代 ~ 江戸時代の徳川家康が熱かった
・vaio のバッテリは寿命が短いような気がする
・話題の Western Digital 製 WD20EARS を購入した
・C01LC をビックカメラで買ってきた
・2025年には空中都市が現実化?!
・【動画】わかりやすい「宇宙ひも理論」
・今世紀には「富士山噴火」「東海連動地震」「首都圏直下型地震」か?
・滅びた町、南浜町が Googleストリートビューで見れる

【 amazon 送料無料キャンペーン 】

バックリンクはご自由にどうぞ!     http://mfsocket.blogspot.com/feeds/posts/default?alt=rss リンク集 / ログイン

2007/03/14
VC2005 & Windows2000 上で _findfirst 実行エラー その2

前回の続きです。
今回もプログラムをある程度知ってる人じゃないと、意味不明かもしれません( ´д`)
 
では、まず問題のソースを見てみましょう。
#include <stdio.h>
#include <io.h>
 
int    main( int argc, char* argv[] )
{
  _finddata_t fd={0};
  const  char* fdkey = "C:\\Program Files\\Java\\j2re1.4.2_13\\bin\\*.*";
 
  intptr_t handle = _findfirst( fdkey, &fd );
  if( handle!=-1 ){
         do{
         }while( _findnext(handle, &fd)!=-1 );
       _findclose(handle);
   }
 
   return 0;
}
 
ここでは、ローカルドライブの C:\\Program Files\\Java\\j2re1.4.2_13\\bin\\ というフォルダの中身(※1)
すべての拡張子対象に検索しています。
 
※1 
なぜ、そんなフォルダを検索するかはあまり考えないで下さい。
 
はて?? 一見、なんの問題も無いように見えますね。
 
 
そうです、このサンプルソースには何の問題もありません!
 
ではここでお待ちかね?の、あるファイルまでを検索した時に出たエラー内容です。
 
 
 
うーん、なぜに日付関連のエラーが??( ゜Д゜)
 
デバッガで追っても意味わかんね
 
ってか XP 上ではなんで同じエラーが起きないんだ?
 
 
実はこの問題、どういう条件下で発生するかの原因が把握できたので次回に発生させる方法を紹介しようと思います。
これは VC6.0 でライブラリを作ってた人かつ Windows2000 環境の人は遭遇する確率が比較的高いかもしれません。
 
VC2005 から初めてプログラムを作る人は、きっとそうぐうすることは無いでしょうね(推測)
 

0 コメント:

  • コメントには <b>, <strong>, <em>, <i>, <a> など一部の HTML タグを使用できます。