亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mfc教程_ mfc下的文件類.htm

?? MFC的教程。 包括: MFC教程_ 概述.files MFC教程_ MFC和Win32.files MFC教程_ CObject類.files MFC教程_ 消息映射的實現.files
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>SetLength </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>SetEndOfFile </P></TD></TR>
  <TR>
    <TD vAlign=top colSpan=4>
      <P align=justify>文件的鎖定/解鎖 </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>LockRange </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>LockFile </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>UnlockRange </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>UnlockFile </P></TD></TR>
  <TR>
    <TD vAlign=top colSpan=4>
      <P align=justify>文件狀態操作函數 </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>GetPosition </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>SetFilePointer </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%"> </TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>GetStatus(CFileStatus&amp;) </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>GetFileTime,GetFileSize等 </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%"> </TD>
    <TD vAlign=top width="5%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="39%">
      <P align=justify>GetStatus(LPSTR lpszFileName CFileStatus&amp;) </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>FindFirstFile </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>GetFileName </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>不是簡單地映射到某個函數 </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>GetFileTitle </P></TD>
    <TD vAlign=top width="50%"> </TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>GetFilePath </P></TD>
    <TD vAlign=top width="50%"> </TD></TR>
  <TR>
    <TD vAlign=top width="6%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="5%"> </TD>
    <TD vAlign=top width="39%">
      <P align=justify>SetFilePath </P></TD>
    <TD vAlign=top width="50%"> </TD></TR>
  <TR>
    <TD vAlign=top width="6%"> </TD>
    <TD vAlign=top width="5%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="39%">
      <P align=justify>SetStatus </P></TD>
    <TD vAlign=top width="50%"> </TD></TR>
  <TR>
    <TD vAlign=top colSpan=4>
      <P align=justify>改名和刪除 </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%"> </TD>
    <TD vAlign=top width="5%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="39%">
      <P align=justify>Rename </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>MoveFile </P></TD></TR>
  <TR>
    <TD vAlign=top width="6%"> </TD>
    <TD vAlign=top width="5%">
      <P align=justify>√ </P></TD>
    <TD vAlign=top width="39%">
      <P align=justify>Remove </P></TD>
    <TD vAlign=top width="50%">
      <P align=justify>DeleteFile </P></TD></TR></TBODY></TABLE>
<P align=center> </P>
<OL>
  <OL>
    <OL>
      <P align=justify>
      <LI><A name=_Toc452640995></A><A name=_Toc457299107></A><B>CFile的部分實現</B> 
      <P></P></LI></OL></OL></OL>
<P align=justify>這里主要討論CFile對象的構造函數和文件的打開/創建的過程。</P>
<OL>
  <P align=justify>
  <LI>構造函數 
  <P></P></LI></OL>
<P align=justify>CFile有如下幾個構造函數:</P>
<UL>
  <P align=justify>
  <LI>CFile() 
  <P></P></LI></UL>
<P align=justify>缺省構造函數,僅僅構造一個CFile對象,還必須使用Open成員函數來打開文件。</P>
<UL>
  <P align=justify>
  <LI>CFile(int hFile) 
  <P></P></LI></UL>
<P 
align=justify>已經打開了一個文件hFile,在此基礎上構造一個CFile對象來給它打包。HFile將被賦值給CFile的成員變量m_hFile。</P>
<UL>
  <P align=justify>
  <LI>CFile(LPCTSTR lpszFileName, UINT nOpenFlags) 
  <P></P></LI></UL>
<P align=justify>指定一個文件名和文件打開方式,構造CFile對象,調用Open打開/創建文件,把文件句柄保存到m_hFile。</P>
<OL>
  <P align=justify>
  <LI>打開/創建文件 
  <P></P></LI></OL>
<P align=justify>Open的原型如下:</P>
<P align=justify>BOOL CFile::Open(LPCTSTR lpszFileName, UINT nOpenFlags,</P>
<P align=justify>CFileException* pException)</P>
<P align=justify>Open調用Win32函數::CreateFile打開文件,并把文件句柄保存到成員變量m_hFile中。</P>
<P align=justify>CreateFile函數的原型如下:</P>
<P align=justify>HANDLE CreateFile(</P>
<P align=justify>LPCTSTR lpFileName,// pointer to name of the file </P>
<P align=justify>DWORD dwDesiredAccess,// access (read-write) mode </P>
<P align=justify>DWORD dwShareMode,// share mode </P>
<P align=justify>LPSECURITY_ATTRIBUTES lpSecurityAttributes, //pointer to 
security descriptor </P>
<P align=justify>DWORD dwCreationDistribution,// how to create </P>
<P align=justify>DWORD dwFlagsAndAttributes,// file attributes </P>
<P align=justify>HANDLE hTemplateFile// handle to file with attributes to 
copy</P>
<P align=justify>);</P>
<P 
align=justify>顯然,Open必須把自己的兩個參數lpszFileName和nOpenFlags映射到CreateFile的七個參數上。</P>
<P align=justify>從OpenFlags的定義可以看出,(nOpenFlags &amp; 
3)表示了讀寫標識,映射成變量dwAccess,可以取值為Win32的GENERIC_READ、GENERIC_WRITE、GENERIC_READ|GENERIC_WRITE。</P>
<P align=justify>(nOpenFlags &amp; 
0x70)表示了共享模式,映射成變量dwShareMode,可以取值為Win32的FILE_SHARE_READ、FILE_SHARE_WRITE、FILE_SHARE_WRITE|FILE_SHARE_READ。</P>
<P align=justify>Open定義了一個局部的SECURITY_ATTRIBUTES變量sa,(nOpenFlags &amp; 
0x80)被賦值給sa.bInheritHandle。</P>
<P align=justify>(nOpenFlags &amp; 
modeCreate)表示了創建方式,映射成變量dwCreateFlag,可以取值為Win32的OPEN_ALWAYS、CREATE_ALWAYS、OPEN_EXISTING。</P>
<P align=justify>在生成了上述參數之后,先調用::CreateFile:</P>
<P align=justify>HANDLE hFile =::CreateFile(lpszFileName,</P>
<DIR>
<P align=justify>dwAccess, dwShareMode, &amp;sa,</P>
<P align=justify>dwCreateFlag, FILE_ATTRIBUTE_NORMAL, NULL);</P></DIR>
<P align=justify>然后,hFile被賦值給成員變量m_hFile,m_bCloseOnDelete被設置為TRUE。</P>
<P align=justify></P>
<P align=justify>由上可以看出,CFile打開(創建)一個文件時大大簡化了:: 
CreateFile函數的復雜性,即只需要指定一個文件名、一個打開文件的參數即可。若該參數指定為0,則表示以只讀方式打開一個存在的文件,獨占使用,不允許子進程繼承。</P>
<P 
align=justify>在CFile對象使用時,如果它是在堆中分配的,則應該銷毀它;如果在棧中分配的,則CFile對象將被自動銷毀。銷毀時析構函數被調用,析構函數是虛擬函數。若m_bCloseOnDelete為真且m_hFile非空,則析構函數調用Close關閉文件。</P>
<P align=justify>至于其他CFile成員函數的實現,這里不作分析了。</P>
<OL>
  <OL>
    <OL>
      <P align=justify>
      <LI><A name=_Toc452640996></A><A name=_Toc457299108></A><B>CFile的派生類</B> 
      <P></P></LI></OL></OL></OL>
<P align=justify>這里主要簡要地介紹CStdioFile和CmemFile及CFileFind。</P>
<OL>
  <P align=justify>
  <LI>CStdioFile 
  <P></P>
  <P align=justify>CStdioFile對文本文件進行操作。</P>
  <P 
  align=justify>CStdioFile定義了新的成員變量m_pStream,類型是FILE*。在打開或者創建文件時,使用_open_osfhandle從m_hFile(Win32文件句柄)得到一個“C”的FILE類型的文件指針,然后,在文件操作中,使用“C”的文件操作函數。例如,讀文件使用_fread,而不是::ReadFile,寫文件使用了_fwrite,而不是::WriteFile,等等。m_hFile是CFile的成員變量。</P>
  <P 
  align=justify>另外,CStdioFile不支持CFile的Dumplicate、LockRange、UnlockRange操作,但是實現了兩個新的操作ReadString和WriteString。</P>
  <P align=justify></P>
  <LI>CMemFile 
  <P></P>
  <P 
  align=justify>CMemFile把一塊內存當作一個文件來操作,所以,它沒有打開文件的操作,而是設計了Attach和Detach用來分配或者釋放一塊內存。相應地,它提供了Alloc、Free虛擬函數來操作內存文件,它覆蓋了Read、Write來讀寫內存文件。</P>
  <P align=justify></P>
  <LI>CFileFind 
  <P></P></LI></OL>
<P 
align=justify>為了方便文件查找,MFC把有關功能歸結成為一個類CFileFind。CFileFind派生于CObject類。首先,它使用FindFile和FineNextFile包裝了Win32函數::FindFirstFile和::FindNextFile;其次,它提供了許多函數用來獲取文件的狀態或者屬性。</P>
<P align=justify>使用CFileStatus結構來描述文件的屬性,其定義如下:</P>
<P align=justify>struct CFileStatus</P>
<P align=justify>{</P>
<P align=justify>CTime m_ctime; // 文件創建時間</P>
<P align=justify>CTime m_mtime; // 文件最近一次修改時間</P>
<P align=justify>CTime m_atime; // 文件最近一次訪問時間</P>
<P align=justify>LONG m_size; // 文件大小</P>
<P align=justify>BYTE m_attribute; // 文件屬性</P>
<P align=justify>BYTE _m_padding; // 沒有實際含義,用來增加一個字節</P>
<P align=justify>TCHAR m_szFullName[_MAX_PATH]; //絕對路徑</P>
<P align=justify></P>
<P align=justify>#ifdef _DEBUG</P>
<P align=justify>//實現Dump虛擬函數,輸出文件屬性</P>
<DIR>
<P align=justify>void Dump(CDumpContext&amp; dc) const;</P></DIR>
<P align=justify>#endif</P>
<P align=justify>};</P>
<P align=justify>例如:</P>
<P align=justify>CFileStatus status;</P>
<P align=justify>pFile-&gt;GetStatus(status);</P>
<P align=justify>#ifdef _DEBUG</P>
<DIR>
<P align=justify>status.dump(afxDump);</P></DIR>
<P align=justify>#endif</P>
<HR>

<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
  <TBODY>
  <TR>
    <TD align=middle><A href="http://www.vczx.com/tutorial/mfc/mfc10.php" 
      target=_self>上一章</A> <A href="http://www.vczx.com/tutorial/mfc/mfc.php" 
      target=_self>回目錄</A> <A href="http://www.vczx.com/tutorial/mfc/mfc12.php" 
      target=_self>下一章</A></TD></TR></TBODY></TABLE>
<P>&nbsp;</P>
<P align=justify></P></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人人狠狠综合久久亚洲| 久久精品国产一区二区| 欧美一区二区在线视频| 成人手机电影网| 青青草国产精品97视觉盛宴| 亚洲欧洲三级电影| 欧美成va人片在线观看| 91麻豆产精品久久久久久| 国产一区二区三区四| 五月天中文字幕一区二区| 亚洲视频在线一区| 亚洲国产精品t66y| 精品福利一二区| 欧美伦理视频网站| 色狠狠综合天天综合综合| 国产成人h网站| 免费成人av在线播放| 亚洲一区二区偷拍精品| 亚洲少妇30p| 国产精品乱码一区二三区小蝌蚪| 精品国产精品一区二区夜夜嗨| 欧美三级电影网站| 欧美亚男人的天堂| 久久九九99视频| 欧美一级二级三级蜜桃| 欧美日韩国产一区| 欧美影院午夜播放| 在线欧美小视频| 97se亚洲国产综合自在线不卡| 国产成人精品三级| 国产麻豆9l精品三级站| 激情图区综合网| 蜜臀av在线播放一区二区三区| 亚洲国产欧美日韩另类综合| 一区二区久久久| 亚洲国产你懂的| 午夜电影网亚洲视频| 视频在线观看91| 日韩精品视频网站| 麻豆久久一区二区| 极品尤物av久久免费看| 韩国v欧美v日本v亚洲v| 国产伦精品一区二区三区免费 | 美女网站视频久久| 蜜桃av一区二区在线观看| 美国毛片一区二区| 国产在线看一区| 国产精品综合在线视频| 成人免费毛片app| 成人免费观看av| 色噜噜偷拍精品综合在线| 欧美亚洲国产一区二区三区va | 亚洲欧洲国产日韩| 中文字幕视频一区| 亚洲午夜免费福利视频| 日产欧产美韩系列久久99| 国内精品国产三级国产a久久| 国产一区不卡在线| 成人国产视频在线观看| 欧洲视频一区二区| 日韩亚洲欧美中文三级| www亚洲一区| 国产欧美精品在线观看| 亚洲精品国产无天堂网2021| 午夜av一区二区| 国产在线精品视频| 91蝌蚪porny| 制服丝袜日韩国产| 中文字幕精品三区| 亚洲主播在线播放| 国产一区二区三区免费| 91色视频在线| 日韩免费视频线观看| 国产精品久久久久天堂| 一个色综合av| 黄色日韩三级电影| 色婷婷国产精品| 精品电影一区二区三区| 亚洲乱码国产乱码精品精小说 | 亚洲欧美日韩在线不卡| 五月天精品一区二区三区| 国产精品18久久久久久久久| 欧美专区亚洲专区| 久久久久九九视频| 偷拍一区二区三区四区| 国产成a人亚洲精品| 91精品国产91综合久久蜜臀| 中文字幕乱码一区二区免费| 三级欧美在线一区| 不卡一区二区中文字幕| 日韩小视频在线观看专区| 中文字幕一区二区三区四区| 久久国产麻豆精品| 成人精品国产一区二区4080| 日韩丝袜美女视频| 一区二区三区日韩欧美精品 | thepron国产精品| 日韩一级二级三级精品视频| 亚洲精品亚洲人成人网在线播放| 狠狠色综合日日| 欧美一区日韩一区| 亚洲自拍偷拍av| jlzzjlzz欧美大全| 2020国产精品自拍| 日韩国产欧美在线视频| 精品剧情v国产在线观看在线| 亚洲大片一区二区三区| 99久久精品一区| 国产亚洲自拍一区| 久久se精品一区精品二区| 欧美久久久影院| 一二三区精品视频| 99国产一区二区三精品乱码| 国产欧美日本一区二区三区| 韩国一区二区视频| 精品蜜桃在线看| 蜜臀99久久精品久久久久久软件| 欧美日韩成人综合在线一区二区| 亚洲一区中文在线| 91黄色免费观看| 亚洲另类春色校园小说| 成人黄色在线看| 国产精品久久久久久久蜜臀 | 一本一本大道香蕉久在线精品 | 综合在线观看色| 大桥未久av一区二区三区中文| 欧美精品一区二区三区高清aⅴ | 56国语精品自产拍在线观看| 亚洲一区二区精品久久av| 色94色欧美sute亚洲线路一久| 国产精品二三区| 99热精品国产| 一区二区三区资源| 在线看日本不卡| 午夜成人免费视频| 在线成人小视频| 久久超级碰视频| 久久亚洲一区二区三区明星换脸| 国产精品123| 欧美高清在线精品一区| 不卡一区在线观看| 亚洲日本在线视频观看| 色94色欧美sute亚洲线路一久 | 国产精品久久毛片av大全日韩| 成人开心网精品视频| 亚洲日本欧美天堂| 欧美日韩视频在线第一区| 五月婷婷综合网| 欧美成人一区二区| 春色校园综合激情亚洲| 亚洲精品日日夜夜| 欧美日韩高清在线| 久久激情五月激情| 久久久亚洲欧洲日产国码αv| 粉嫩aⅴ一区二区三区四区五区| 国产精品久久久久久久久免费桃花| 色综合中文字幕国产 | 丁香桃色午夜亚洲一区二区三区| 国产日韩视频一区二区三区| 成人av网址在线| 一区二区三区在线视频观看58 | 成人综合激情网| 亚洲欧美日韩人成在线播放| 欧美性色aⅴ视频一区日韩精品| 视频一区视频二区中文| 久久综合九色综合久久久精品综合| caoporen国产精品视频| 亚洲一区影音先锋| 久久综合九色欧美综合狠狠| 91影院在线免费观看| 日韩av电影免费观看高清完整版| 久久久久国产一区二区三区四区| 色婷婷综合久久久中文字幕| 日本欧美久久久久免费播放网| 激情综合一区二区三区| 亚洲国产成人在线| 欧美浪妇xxxx高跟鞋交| 国产精品123区| 午夜激情久久久| 国产精品福利一区二区| 欧美一区二区在线不卡| 国产成人精品三级麻豆| 婷婷中文字幕综合| 中文字幕一区二| 2欧美一区二区三区在线观看视频| 色综合天天天天做夜夜夜夜做| 久久精品国产网站| 亚洲在线成人精品| 欧美激情综合在线| 欧美一区二区三区色| 91在线国内视频| 国产一区二区三区免费| 亚洲第一主播视频| 中文字幕一区二区三区色视频| 欧美电视剧免费观看| 欧洲av一区二区嗯嗯嗯啊| 国产成人精品一区二区三区四区| 日韩二区三区在线观看| 玉足女爽爽91| 中文字幕中文乱码欧美一区二区|