亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

使用CFile類讀取大文件

2023-06-09 12:08:01
字體:
來源:轉載
供稿:網友

由于vc6中mfc的cfile類使用32位整型數來處理文件,所以它只支持不大于4gb的文件,若超過這個范圍的文件cfile就管不了。當然,在微軟的.net中vc7的cfile類中已經支持大于4gb的文件,但我們還有必要為VC6愛好者探討一下在CFile類中支持大文件的方法。

class cfile64 : public cfile
{
public:

// attributes
ulonglong getposition();


// overridables

virtual ulonglong seek(longlong loff, uint nfrom);
virtual void setlength(ulonglong dwnewlen);
ulonglong getlength() ;

virtual void lockrange(ulonglong dwpos, ulonglong dwcount);
virtual void unlockrange(ulonglong dwpos, ulonglong dwcount);

};

#include "stdafx.h"
#include "file64.h"

////////////////////////////////////////////////////////////////////////////
// cfile64 implementation

ulonglong cfile64::seek(longlong loff, uint nfrom)
{
assert_valid(this);
assert((handle)m_hfile != invalid_handle_value);
assert(nfrom == begin || nfrom == end || nfrom == current);
assert(begin == file_begin && end == file_end && current == file_current);

large_integer lioff;

lioff.quadpart = loff;
lioff.lowpart = ::setfilepointer((handle)m_hfile, lioff.lowpart, &lioff.highpart,
(dword)nfrom);
if (lioff.lowpart == (dword)-1)
if (::getlasterror() != no_error)
cfileexception::throwoserror((long)::getlasterror(), m_strfilename);

return lioff.quadpart;

}

ulonglong cfile64::getposition()
{
assert_valid(this);
assert((handle)m_hfile != invalid_handle_value);

large_integer lipos;
lipos.quadpart = 0;
lipos.lowpart = ::setfilepointer((handle)m_hfile, lipos.lowpart, &lipos.highpart , file_current);
if (lipos.lowpart == (dword)-1)
if (::getlasterror() != no_error)
cfileexception::throwoserror((long)::getlasterror(), m_strfilename);

return lipos.quadpart;
}

void cfile64::lockrange(ulonglong dwpos, ulonglong dwcount)
{
assert_valid(this);
assert((handle)m_hfile != invalid_handle_value);

ularge_integer lipos;
ularge_integer licount;

lipos.quadpart = dwpos;
licount.quadpart = dwcount;
if (!::lockfile((handle)m_hfile, lipos.lowpart, lipos.highpart, licount.lowpart,
licount.highpart))
{
cfileexception::throwoserror((long)::getlasterror(), m_strfilename);
}
}

void cfile64::unlockrange(ulonglong dwpos, ulonglong dwcount)
{
assert_valid(this);
assert((handle)m_hfile != invalid_handle_value);

ularge_integer lipos;
ularge_integer licount;

lipos.quadpart = dwpos;
licount.quadpart = dwcount;
if (!::unlockfile((handle)m_hfile, lipos.lowpart, lipos.highpart, licount.lowpart,
licount.highpart))
{
cfileexception::throwoserror((long)::getlasterror(), m_strfilename);
}
}

void cfile64::setlength(ulonglong dwnewlen)
{
assert_valid(this);
assert((handle)m_hfile != invalid_handle_value);

seek(dwnewlen, (uint)begin);

if (!::setendoffile((handle)m_hfile))
cfileexception::throwoserror((long)::getlasterror(), m_strfilename);
}

ulonglong cfile64::getlength()
{
assert_valid(this);

ularge_integer lisize;
lisize.lowpart = ::getfilesize((handle)m_hfile, &lisize.highpart);
if (lisize.lowpart == (dword)-1)
if (::getlasterror() != no_error)
cfileexception::throwoserror((long)::getlasterror(), m_strfilename);

return lisize.quadpart;
}

/////////////////////////////////////////////////////////////////////////////

上面使用的longlong是64位整型,經過這樣修改后,在理論上可支持的最大文件為18000000000gb。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久久中文字幕| 成人午夜在线视频一区| 国产视频在线观看一区二区| 久久精品91久久香蕉加勒比| 久久视频免费在线播放| 欧美一级高清免费播放| 国产精品偷伦视频免费观看国产| 国产不卡在线观看| 日韩欧美在线视频| 久热爱精品视频线路一| 亚洲风情亚aⅴ在线发布| 久久久亚洲福利精品午夜| 日韩av不卡在线| 2019中文字幕免费视频| 97av视频在线| 色综合色综合久久综合频道88| 成人黄色在线播放| 日韩a**中文字幕| 亚洲视频欧洲视频| 一夜七次郎国产精品亚洲| 97精品一区二区三区| 91国产视频在线| 热久久免费视频精品| 久久久亚洲国产天美传媒修理工| 深夜福利91大全| 午夜精品久久久久久久99黑人| 欧美性生交xxxxxdddd| 亚洲日韩欧美视频| 中文一区二区视频| 日本不卡免费高清视频| 国产不卡视频在线| 亚洲护士老师的毛茸茸最新章节| 91性高湖久久久久久久久_久久99| 国产精品久久久久久久久久ktv| 国产精品亚洲片夜色在线| 国产综合香蕉五月婷在线| 日本老师69xxx| 欧美国产极速在线| 国产ts一区二区| 日韩国产欧美精品一区二区三区| 亚洲最新中文字幕| 国产精品观看在线亚洲人成网| 性欧美长视频免费观看不卡| 日韩中文字幕在线播放| 欧美日韩国产色| 国产精品一区二区久久久| 91欧美视频网站| 欧美大尺度激情区在线播放| 日韩电影中文字幕| 亚洲国产精品国自产拍av秋霞| 欧美区在线播放| 在线观看国产精品淫| 日韩三级影视基地| 国语自产精品视频在线看一大j8| 欧美精品做受xxx性少妇| 亚洲精品中文字| 91久久精品日日躁夜夜躁国产| 亚洲欧洲一区二区三区在线观看| 成人黄色在线播放| 国产999精品视频| 久久躁日日躁aaaaxxxx| 欧美性高潮床叫视频| 蜜臀久久99精品久久久久久宅男| 欧美日韩亚洲天堂| 疯狂做受xxxx欧美肥白少妇| 国产精品aaaa| 国产丝袜一区二区三区免费视频| 日韩高清av在线| 亚洲欧美在线x视频| 日韩欧美在线视频日韩欧美在线视频| 九九精品在线观看| 欧美成人午夜激情| 欧美视频专区一二在线观看| 亚洲国产精品va在线看黑人动漫| 久久久久久久久久久免费精品| 欧美电影在线观看| 岛国av一区二区| 中文字幕在线看视频国产欧美在线看完整| 亚洲精品之草原avav久久| 精品久久久久久国产| 一区二区三区国产视频| 国产精品久久久久久久久免费看| 欧美日韩中文字幕日韩欧美| 欧美日本高清视频| 日韩中文综合网| 97精品视频在线观看| 中文字幕视频一区二区在线有码| 中文字幕亚洲综合| 欧美人与物videos| 成人有码在线播放| 国产精品日本精品| 久久免费视频在线| 亚洲欧美综合图区| 91精品国产91久久久久久久久| 国产视频在线观看一区二区| 日韩美女免费视频| 最新的欧美黄色| 91精品国产99久久久久久| 中文字幕在线看视频国产欧美| 欧美日韩福利视频| 久久久精品一区二区| 成人a视频在线观看| 国产精品狼人色视频一区| 在线亚洲男人天堂| 亚洲欧美制服另类日韩| 97精品国产97久久久久久春色| 97视频在线观看成人| 中文字幕久精品免费视频| 日韩成人在线免费观看| 九九热精品视频在线播放| 中文字幕精品国产| 欧美大片免费观看| 伊人亚洲福利一区二区三区| 中文字幕亚洲欧美一区二区三区| 亚洲xxxx3d| 亚洲男人av电影| 日韩女优在线播放| 亚洲成人精品视频在线观看| 国产精品com| 久久亚洲成人精品| 红桃av永久久久| 精品日本美女福利在线观看| 91九色视频导航| 久久99精品久久久久久噜噜| 欧美成人午夜激情视频| 亚洲a一级视频| 亚洲国产精品国自产拍av秋霞| 555www成人网| 韩国福利视频一区| 日本91av在线播放| 国产精品久久久久秋霞鲁丝| 亚洲一级黄色av| 不卡在线观看电视剧完整版| 欧美日韩亚洲天堂| 国产成人亚洲综合91| 久久久久成人精品| 欧美精品videosex牲欧美| 日韩中文字幕在线视频| 国产精品海角社区在线观看| 久久久人成影片一区二区三区观看| 中文字幕亚洲在线| 国产一区二区丝袜| 一区二区国产精品视频| 韩国v欧美v日本v亚洲| 91精品国产自产在线| 日韩不卡在线观看| 久久久精品电影| 日本不卡免费高清视频| 亚洲精品v欧美精品v日韩精品| 国产99久久久欧美黑人| 青青青国产精品一区二区| 国产一区二区香蕉| 欧美日韩在线视频一区二区| 亚洲午夜久久久久久久| 国产精品中文久久久久久久| 日韩精品视频中文在线观看| 国产亚洲欧美日韩一区二区| 国产一区二区丝袜| 日本久久精品视频| 国产精品美女久久久久久免费| 久久久精品电影| 操人视频在线观看欧美| 91免费电影网站| 精品国产91久久久久久老师|