CStdioFile 64bit対応版
VC++2010で文字列をゴリゴリとダンプするツールを作っていたのだが、ダンプ先のファイルが4GBを超えたあたりから変化しなくなってしまった。
書き出しに使っていたCStdioFileが怪しいと思いソース(filetxt.cpp)を読んでみると、なんと64bit未対応。
インターフェイスは以下のようにさも64bit版ですよ!的な見た目だが、実際には中でLONG_MAXを超えるアドレスは扱えないよう制限が掛けられている。
ULONGLONG Seek(LONGLONG lOff, UINT nFrom); ULONGLONG GetLength() const; ULONGLONG GetPosition() const;
制限がかかってるってことは、環境によってはストリーム入出力が32bitしか扱えないってことなんですかね。
VC++2013だとどうなってるんだろ?