前回の続きです。
今回もプログラムをある程度知ってる人じゃないと、意味不明かもしれません( ´д`)
では、まず問題のソースを見てみましょう。
#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 コメント:
コメントを投稿