CFileFind::GetLength64()のバグ(MFC6)
GetFilePath()の不具合など、そこらじゅうに公開されてます、でもこの不具合を公開している日本人は・・・
http://www.codeproject.com/buglist/getlength64bug.asp.asp
<ソース抜粋>
struct {
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
} WIN32_FIND_DATAx data;
INT64 GetLength64()
{
return dara.nFileSizeHigh + (data.nFileSizeHigh << 32);
}
判る人には判る、とてつもない不具合(MFC6)
せめて、dara.nFileSizeHigh + (data.nFileSizeHigh * 0x100000000) とすれば大丈夫だった(?)
MFC7以降は、GetLength64()はINT64 GetLength()に統合されてます(バグもない?)。
ちなみに、CFile::GetStatus()も4G以上をアクセスするとアサート(デバッグ環境)。
http://www.codeproject.com/buglist/getlength64bug.asp.asp
<ソース抜粋>
struct {
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
} WIN32_FIND_DATAx data;
INT64 GetLength64()
{
return dara.nFileSizeHigh + (data.nFileSizeHigh << 32);
}
判る人には判る、とてつもない不具合(MFC6)
せめて、dara.nFileSizeHigh + (data.nFileSizeHigh * 0x100000000) とすれば大丈夫だった(?)
MFC7以降は、GetLength64()はINT64 GetLength()に統合されてます(バグもない?)。
ちなみに、CFile::GetStatus()も4G以上をアクセスするとアサート(デバッグ環境)。
Posted by CabinUltraMild URL
スポンサーサイト