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

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

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

2007/02/25
VC2005 & Windows2000 上で _findfirst 実行エラー その1

最初に 今日はプログラマ向けの話題なので、一般の人にはツマラナイ記事かもしれません。
 ( しかも Windows での開発者向け。。 )
 
 
最近 VC2005( Platform SDK )をインストールし VC6.0 から移行していこうかなーと思い色々実験をしていたのですが、
なんとファイルを検索する API  _findfirst で例外が起きてしまうのです。
 
 
僕はこの API 関数は自分ライブラリの一環の中で使用しているのですが、どうも特定ディレクトリを検索すると
落ちてしまう感じです。
 
自分のコーディングを疑ったり、そのフォルダのアクセス権限を疑ったり、気になることすべてを疑いましたが
2台のマシン上で同じ結果だったので、これは VC2005 と Windows2000/SP4 の問題な気がしてしょうがありません。
 
その証拠に
 
 _findfirst系 部分を WinAPI のFindFirst() 系に変えたコードにすると
 
実行エラーにならないのです。
 
 
ちなみに WindowsXP 上ではこの問題は確認できませんでした。
3台のマシン環境( Windows2000 *2  WindowsXP )でVC2003 も含めて試してみたのですが、Windows2000上のみでの
発生確認をしております。
 
 
・正確に言うと、 _findnext() 関数で落ちており C:\Program Files フォルダ内の階層で検索する場合に限り
  落ちてしまいます。
 
・落ちるディレクトリを丸ごとコピーし、別ドライブに持ってて検索した場合は落ちません
 
・試した双方のマシンとも FAT32/NTFS と違うフォーマットでドライブを初期化してあります。
 
 
唯一共通するのは、Windows2000/SP4 と VC2005( PlatformSDK )という事実だけであります( ´д`)
 
 
まぁ FindFirst() 系を使えば良いという話でありますが、
 
Linux 用の Cライブラリ とかも趣味で書いてるので _findfirst
 
使いたいのですよ!!(※1)
 
  ( ゜Д゜)モルァ!!
 
 
さてこの問題は(※2)、このブログの解決すべきテーマとして定期的に扱っていきます。
 
次回 エラーの詳細 発生した実行環境/ソース を例に謎を解いてみようと思います( ´д`)
 
 ※1
linux には findfirst() はありません。
純粋にライブラリで WinAPI を使いたくないというわがままです。
 
 ※2
似たような現象を体感したことがある人は、ぜひお知えてください。
 

0 コメント:

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