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

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

?? visual c++ 50 編 程 經 驗.htm

?? VC的一些技巧性文檔
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
	MSG Message;	DeleteFile(ExitFlag);	SetTimer(1,100,NULL);// 設 置 計 時 器	Search=TRUE;	while(Search) {		if (::PeekMessage(&amp;Message,NULL,0,0,PM_REMOVE)) {			::TranslateMessage(&amp;Message);			::DispatchMessage(&amp;Message);		}	}// 進 程 結 束 前 后 的 處 理 工 作	DWORDExitCode;	if (!GetExitCodeProcess(pro_info.hProcess,&amp;ExitCode))		AfxMessageBox(&quot;GetExitCodeProcess is Failed!&quot;);	if (!TerminateProcess(pro_info.hProcess,(UINT)ExitCode))                    // 終 止 進 程		AfxMessageBox(&quot;TerminateProcess is Failed!&quot;);	if (!CloseHandle(pro_info.hProcess))                   // 釋 放 被 終 止 進 程 的 句 柄		AfxMessageBox(&quot;CloseHandle is Failed!&quot;);	KillTimer(1);// 撤 消 計 時 器	}	else AfxMessageBox(&quot;Process Is Not Created!&quot;);	SetCurrentDirectory(lpBuffer);// 回 復 到 原 來 的 目 錄 下}</pre>    <ul type="square">      <li>同 時 按 下Ctrl 和W 鍵 或 直 接 單 擊 工 具 條 上 的ClassWizard 按         鈕, 打 開ClassWizard 對 話 框。 在 類 名(Class name) 列 表 框 中 選 擇         需 要 調 用ARJ.EXE 進 行 壓 縮/ 解 壓 縮 的 類, 在Object IDs 列 表 框         中 選 擇 該 類 的 類 名 后, 在 消 息(Messages) 列 表 框 中 選 擇WM_TIMER         消 息 并 雙 擊 它, 這 時ClassWizard 就 會 在 該 類 中 加 入 一 個OnTimer()         函 數。 該 函 數 將 以 一 定 的 時 間 間 隔 檢 查 壓 縮/ 解 壓 縮         程 序 是 否 已 經 執 行 完 畢, 即 檢 查 作 為 標 志 的 臨 時 文 件         是 否 已 經 存 在, 并 及 時 修 改 狀 態 變 量“Search”, 以 便 通         知RunBat() 函 數 結 束 進 程。 </li>    </ul>    <pre>void CMyCompress::OnTimer(UINT nIDEvent) {	// TODO: Add your message handler code here and/or call default	CFile file;	CFileException Error;	if (file.Open(ExitFlag,CFile::modeRead,&amp;Error)) {		Search=FALSE;		file.Close();		}}</pre>    <h3><font color="#FF0000">自 編 刪 除 目 錄 及 其 下 屬 文 件 的 函 數</font></h3>    <h3><font color="#FFFFFF">----</font> 高 版 本 的MS-DOS 和Windows 95 都 提 供 了     一 個 可 以 刪 除 一 個 或 多 個 目 錄 及 其 下 屬 文 件 和 目 錄     的 命 令, 即DeleteTree 命 令。 然 而, 無 論 在MFC 類 庫 還 是 在Win32     函 數 庫 中, 都 沒 有 相 應 的 函 數 與 之 對 應。 這 樣, 當 我     們 在 自 己 設 計 的 應 用 程 序 中 需 要 用 到DeleteTree 的 功 能     時, 自 然 想 到 的 方 法 是 通 過 進 程 調 用 或 者 系 統 調 用 的     方 式( 正 如 上 面 部 分 所 述 的 那 樣) 調 用MD-DOS 或Windows 95 下 的DeleteTree     命 令。 然 而,Win32 函 數 庫 已 經 為 我 們 提 供 了 多 種 用 于 文     件 和 目 錄 操 作 的 函 數, 利 用 它 們 不 難 設 計 出 自 己 的DeleteTree()     函 數。 </h3>    <p><font color="#FFFFFF">----</font> 讀 者 讀 到 這 里, 也 許 會 感 到 有     些 疑 惑, 為 什 么 第 六 部 分 強 調 進 程 調 用 優 于 自 我 設 計     的 函 數, 而 這 一 部 分 又 反 了 過 來 ? 是 的, 在 通 常 情 況     下, 調 用 應 用 程 序 內 部 的 函 數 比 使 用 進 程 或 者 調 用 外     部 函 數 更 靈 活 并 且 可 以 提 高 執 行 效 率, 也 便 于 修 改。     所 以, 象DeleteTree() 這 樣 的 功 能, 利 用 現 有 的 函 數 并 不 難     實 現, 自 然 就 最 好 通 過 內 部 函 數 的 方 式 來 完 成。 然     而, 象 設 計 一 個 壓 縮/ 解 壓 縮 這 樣 的 函 數 的 工 作 量, 并     不 比 通 過 進 程 調 用 來 使 用 現 成 品 的 開 銷 更 合 算, 因 為     它 至 少 需 要 我 們 了 解 壓 縮/ 解 壓 縮 的 復 雜 算 法, 而 且     調 試 和 維 護 它 也 需 要 一 定 代 價。 于 是, 這 個 時 候, 還     是 采 用“ 拿 來 主 義” 為 好。 </p>    <p><font color="#FFFFFF">----</font> 下 面, 給 出 我 自 己 設 計 的DeleteTree()     函 數, 僅 供 參 考。 </p>    <pre>BOOL DeleteTree(CString DirName){ //成功:返回TRUE;否則,返回FALSE	BOOL Result;	Result=PreRemoveDirectory(DirName)      &amp;&amp; RemoveDirectory(DirName);	return Result;}BOOL PreRemoveDirectory(CString DirName){//成功:返回TRUE;否則,返回FALSE	LPTSTR lpBuffer;	UINT uSize;	CString fileName;	HANDLE hHeap;	BOOL result;	HANDLE hFindFile;	WIN32_FIND_DATA	FindFileData;	uSize=(GetCurrentDirectory(0,NULL))*sizeof(TCHAR);	hHeap=GetProcessHeap();	lpBuffer=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,uSize);	GetCurrentDirectory(uSize,lpBuffer);	if (lpBuffer!=DirName) {//調整當前目錄		SetCurrentDirectory(DirName);	}	hFindFile=FindFirstFile(&quot;*.*&quot;,&amp;FindFileData);	CString tFile;	if (hFindFile!=INVALID_HANDLE_VALUE) {		do {			tFile=FindFileData.cFileName;			if ((tFile==&quot;.&quot;)||(tFile==&quot;..&quot;)) continue;			if (FindFileData.dwFileAttributes==              FILE_ATTRIBUTE_DIRECTORY){				if (DirName[DirName.GetLength()-1]!='\\')					PreRemoveDirectory(DirName+'\\'+tFile);				else					PreRemoveDirectory(DirName+tFile);				if (!RemoveDirectory(tFile))					result=FALSE;				else					result=TRUE;			}			else				if (!DeleteFile(tFile)) result=FALSE;				else result=TRUE;		}		while (FindNextFile(hFindFile,&amp;FindFileData));		FindClose(hFindFile);	}	else {		SetCurrentDirectory(lpBuffer);		return FALSE;	}	SetCurrentDirectory(lpBuffer); //回復到原來的目錄下	return result;}</pre>    <h3><font color="#FF0000">如 何 得 到 并 修 改 各 驅 動 器 的 信 息</font></h3>    <h3><font color="#FFFFFF">----</font> 在 設 計 和 文 件 輸 入/ 輸 出 有 關 的     應 用 程 序 時, 我 們 很 可 能 在 輸 入/ 輸 出 文 件 前, 需 要 了     解 一 下 源 驅 動 器 或 者 目 標 驅 動 器 的 各 項 信 息, 比 如 是     否 有 磁 盤 在 軟 驅 中, 它 是 否 已 打 開 寫 保 護, 以 及 現 有     磁 盤 的 容 量 等。 遺 憾 的 是,MFC 類 庫 中 沒 有 提 供 支 持 這     些 功 能 的 類, 所 以 我 們 只 能 通 過Win32 提 供 的 函 數 來 完     成 我 們 的 要 求。 下 面, 我 根 據 自 己 的 編 程 實 踐, 通 過     幾 段 程 序, 來 說 明 如 何 利 用Win32 提 供 的 函 數 實 現 對 驅     動 器 的 操 作。 讀 者 可 以 根 據 自 己 的 需 要, 把 介 紹 的 函     數 稍 加 修 改 后, 即 可 插 入 到 自 己 設 計 的 應 用 程 序 中     去。 </h3>    <ul type="square">      <li>下 面 程 序 的 功 能 是 搜 索 計 算 機 中 所 有 驅 動 器, 選 擇         出 其 中 軟 盤 驅 動 器 的 驅 動 器 號, 依 次 加 入 到 一 個 下 拉         列 表 框 中。 </li>    </ul>    <pre>void FindDriverInfo(){	CComboBox* Driver=(CComboBox*)GetDlgItem(IDC_DRIVER);	DWORD dwNumBytesForDriveStrings;	HANDLE hHeap;	LPSTR lp;	CString strLogdrive;	int nNumDrives=0, nDriveNum;	dwNumBytesForDriveStrings=GetLogicalDriveStrings(0,NULL)       *sizeof(TCHAR);//實際存儲驅動器號的字符串長度	if (dwNumBytesForDriveStrings!=0) {		hHeap=GetProcessHeap();		lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,         dwNumBytesForDriveStrings);//		GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);		StringBox.SetSize(dwNumBytesForDriveStrings/sizeof(TCHAR)+1);		while (*lp!=0) {			if (GetDriveType(lp)==DRIVE_REMOVABLE){			Driver-&gt;AddString(lp);			StringBox[nNumDrives]=lp;			nNumDrives++;			}			lp=_tcschr(lp,0)+1;		}	}	else AfxMessageBox(&quot;Can't Use The Function GetLogicalDriveStrings!&quot;);}</pre>    <ul type="square">      <li>下 面 介 紹 的EmptyDiskSpace() 函 數 主 要 負 責 清 空 指 定 驅 動 器         中 的 磁 盤, 同 時 它 還 負 責 記 錄 指 定 驅 動 器 中 磁 盤 的 容         量, 并 得 到 該 磁 盤 的 序 列 號。 在 該 函 數 中, 還 將 調 用         第 七 部 分 提 到 的PreRemoveDirectory() 函 數, 來 完 成 清 空 工 作。 </li>    </ul>    <pre>BOOL EmptyDiskSpace(CString Driver){	BOOL	result=TRUE;	DWORDSectorsPerCluster;	// address of sectors per cluster 	DWORDBytesPerSector;	// address of bytes per sector 	DWORDNumberOfFreeClusters;	// address of number of free clusters	DWORDTotalNumberOfClusters;	DWORDTotalBytes;	DWORDFreeBytes;	int		bContinue=1;	char DiskVolumeSerialNumber[30];                   //存儲驅動器內當前磁盤的序列號	LPCTSTRlpRootPathName;	                  // address of root directory of the file system 	LPTSTRlpVolumeNameBuffer=new char[12];                  // address of name of the volume 	DWORDnVolumeNameSize=12;                  // length of lpVolumeNameBuffer 	DWORD	VolumeSerialNumber;                  // address of volume serial number 	DWORD MaximumComponentLength;                  // address of system's maximum filename length	DWORD FileSystemFlags;                  // address of file system flags 	LPTSTRlpFileSystemNameBuffer=new char[10];                  // address of name of file system 	DWORDnFileSystemNameSize=10;                  // length of lpFileSystemNameBuffer 			lpRootPathName=Driver;	while (1){		if (GetDiskFreeSpace(Driver, &amp;SectorsPerCluster,            &amp;BytesPerSector, &amp;NumberOfFreeClusters,             &amp;TotalNumberOfClusters)) 		{//驅動器中有磁盤			TotalBytes=SectorsPerCluster*BytesPerSector                      *TotalNumberOfClusters;//磁盤總容量			FreeBytes=SectorsPerCluster*BytesPerSector                     *NumberOfFreeClusters;//磁盤空閑空間容量			GetVolumeInformation(lpRootPathName,                     lpVolumeNameBuffer, nVolumeNameSize,                        &amp;VolumeSerialNumber,           				&amp;MaximumComponentLength,                        &amp;FileSystemFlags,                        lpFileSystemNameBuffer, nFileSystemNameSize);			sprintf(DiskVolumeSerialNumber,&quot;%X&quot;,VolumeSerialNumber);                        //得到驅動器內當前磁盤的序列號			SetmTotalBytes(TotalBytes/1024);//存儲指定驅動器中磁盤的容量			if (TotalBytes!=FreeBytes){//當磁盤總容量不等于空閑空間容量時,                                  應該執行清空操作			while (bContinue) {				if ((bContinue==2)||(MessageBox                   (&quot;在驅動器 &quot;+m_Driver+&quot;中的磁盤尚存有數據.                     \n您愿意讓系統為您刪除它們嗎?&quot;,                     &quot;提問&quot;,MB_YESNO|MB_ICONQUESTION)==IDYES))				if (!PreRemoveDirectory(Driver))//無法執行清空操作					if (MessageBox(&quot;因某種原因系統無法刪除                    在驅動器 &quot;+m_Driver+&quot;中的磁盤上的數據.                       \n請檢查磁盤是否沒有關閉寫保護.                       \n您愿意再試一次嗎?&quot;,                       &quot;問題&quot;,MB_YESNO|MB_ICONERROR)==IDYES) {						bContinue=2;						continue;					}					else {						bContinue=0;						result=FALSE;					}				else {					MessageBox(&quot;成功刪除磁盤上的數據!&quot;,                    &quot;提示信息&quot;,MB_OK|MB_ICONINFORMATION);					bContinue=0;					result=TRUE;				}				else {//THE FIRST IF'S ELSE					bContinue=0;					result=FALSE;				}			}								}			else result=TRUE;			break;		}		else {			if (MessageBox(&quot;沒有磁盤在驅動器 &quot;+m_Driver+&quot;中.                \n您愿意插入一張磁盤再來一次嗎?&quot;, 			&quot;問題&quot;,MB_YESNO|MB_ICONASTERISK)==IDYES)	continue;			else break;		}	}//END OF WHILE	return result;}</pre>    <ul type="square">      <li>在MS-DOS 和Windows95 中, 磁 盤 卷 標 最 多 由11 個 字 符 組 成, 并         且 字 母 的 大 小 寫 不 加 區 分。 當 需 要 設 定 指 定 驅 動 器 中         磁 盤 的 卷 標 時, 只 要 調 用Win32 的SetVolumeLabel() 函 數 即 可, 并         在 第 一 個 參 數 中 指 明 磁 盤 所 在 的 驅 動 器 號, 在 第 二 個         參 數 中 指 明 新 的 卷 標 號。 例 如,SetVolumeLabel(DriverNum,         NewVolumeLabel)。 </li>    </ul>    <p> </td>  </tr></table></center></div></body></html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区视频在线看| 国产精品中文字幕日韩精品| 麻豆精品在线视频| 国产高清亚洲一区| 欧美综合一区二区| 久久精品水蜜桃av综合天堂| 午夜不卡av在线| 北条麻妃一区二区三区| 91精品国产色综合久久久蜜香臀| 国产精品视频线看| 久草这里只有精品视频| 欧美在线观看视频在线| 国产精品久久久久久久岛一牛影视| 三级欧美韩日大片在线看| 99热在这里有精品免费| 久久婷婷国产综合国色天香| 亚洲bt欧美bt精品777| 色综合天天综合| 一区二区三区在线免费| 国产精品一区专区| 欧美va亚洲va| 亚洲成人av电影| 欧美色精品天天在线观看视频| 国产精品成人网| 国产成人h网站| 国产色综合久久| 国产成人精品亚洲777人妖| 亚洲精品一区二区三区蜜桃下载| 亚洲成人动漫精品| 欧美亚洲另类激情小说| 亚洲综合色区另类av| 色域天天综合网| 尤物av一区二区| 欧美系列亚洲系列| 图片区日韩欧美亚洲| 欧美日韩国产首页| 国产剧情一区二区| 亚洲精品一区二区三区福利| 狠狠色狠狠色综合| 国产午夜精品福利| 岛国一区二区在线观看| 中文字幕在线不卡一区| eeuss鲁一区二区三区| 国产精品不卡一区二区三区| 99re在线视频这里只有精品| 亚洲精品欧美二区三区中文字幕| 欧美综合天天夜夜久久| 婷婷六月综合网| 日韩欧美中文字幕精品| 韩国v欧美v亚洲v日本v| 日本一区免费视频| 91视视频在线观看入口直接观看www | 久久久午夜精品理论片中文字幕| 狠狠狠色丁香婷婷综合激情 | 56国语精品自产拍在线观看| 免费成人av在线| 国产亚洲精品bt天堂精选| 高清不卡在线观看| 亚洲少妇屁股交4| 欧美精品色综合| 国产尤物一区二区| **网站欧美大片在线观看| 欧美日韩日日夜夜| 黄页网站大全一区二区| 一区二区中文视频| 日韩一区二区视频在线观看| 懂色av一区二区三区免费观看| 一区二区三区中文字幕精品精品 | 亚洲天堂中文字幕| 欧美丰满一区二区免费视频| 国产91对白在线观看九色| 亚洲一区二区三区在线播放| 精品剧情在线观看| 欧亚洲嫩模精品一区三区| 精品亚洲欧美一区| 亚洲伦理在线免费看| 精品福利一区二区三区 | 精品粉嫩aⅴ一区二区三区四区| 成人黄色国产精品网站大全在线免费观看| 日本韩国欧美国产| 久久国产人妖系列| 亚洲日本一区二区三区| 日韩欧美视频在线| 不卡在线视频中文字幕| 日韩高清国产一区在线| 国产性天天综合网| 日韩视频免费观看高清完整版在线观看| 风间由美性色一区二区三区| 亚洲地区一二三色| 中文字幕在线不卡视频| 91麻豆精品国产91久久久更新时间| 99视频在线精品| 裸体一区二区三区| 亚洲午夜视频在线| 国产午夜亚洲精品理论片色戒| 911精品国产一区二区在线| 成人综合激情网| 美女在线观看视频一区二区| 综合欧美亚洲日本| 亚洲精品一区二区三区福利| 4438亚洲最大| 91日韩一区二区三区| 国产高清在线观看免费不卡| 亚洲电影视频在线| 一区二区三区欧美视频| 欧美在线观看一二区| 99久久精品免费看| 成人黄色免费短视频| 韩国精品一区二区| 国产乱对白刺激视频不卡| 午夜日韩在线电影| 亚洲成人资源网| 亚洲欧美经典视频| 在线国产亚洲欧美| 国v精品久久久网| 成人激情免费网站| 狠狠色丁香婷婷综合| 国内欧美视频一区二区| 天天影视色香欲综合网老头| 日韩黄色免费网站| 亚洲精品视频免费看| 亚洲制服丝袜一区| 国产日韩av一区| 久久美女艺术照精彩视频福利播放| 久久久久久一级片| 欧美精品一区二区久久婷婷| 精品视频123区在线观看| 欧美日韩亚洲综合在线 | 粉嫩一区二区三区在线看| 偷拍与自拍一区| 久久99国产精品尤物| 麻豆成人久久精品二区三区红 | 欧美日韩国产欧美日美国产精品| 一本久久综合亚洲鲁鲁五月天 | 麻豆高清免费国产一区| 精品亚洲免费视频| 国产一区免费电影| 国产乱子伦视频一区二区三区| 青青草一区二区三区| 日本欧美久久久久免费播放网| 亚洲一区二区欧美| 天天综合日日夜夜精品| 免费视频一区二区| 国产精品一级片在线观看| 91香蕉视频污| 色88888久久久久久影院野外| 91在线视频观看| 精品视频一区 二区 三区| 99久久精品免费看国产免费软件| 91国偷自产一区二区三区成为亚洲经典| 91色.com| 正在播放一区二区| 久久午夜羞羞影院免费观看| 日韩女优视频免费观看| 亚洲欧洲99久久| 香蕉久久夜色精品国产使用方法 | 91蝌蚪porny| 色拍拍在线精品视频8848| 欧美日韩久久一区二区| 精品久久人人做人人爰| 国产无人区一区二区三区| 午夜精品福利一区二区蜜股av | 欧美区在线观看| 精品国产伦一区二区三区观看方式| 久久品道一品道久久精品| 亚洲欧洲一区二区三区| 岛国精品在线观看| 在线观看国产一区二区| 欧美精品一区二区三区在线| 国产精品视频免费| 亚洲18色成人| 成人涩涩免费视频| 亚洲免费av网站| 韩国女主播成人在线| 91视频精品在这里| 欧美α欧美αv大片| 国产精品国产三级国产普通话99| 亚洲欧洲日韩综合一区二区| 精品一区二区在线播放| 色综合天天综合网天天看片| 欧美一级专区免费大片| 国产精品高潮久久久久无| 青青草精品视频| 欧美影院精品一区| 18成人在线观看| 狠狠色2019综合网| 欧美成人激情免费网| 亚洲激情欧美激情| 国产suv精品一区二区883| 欧美日韩成人高清| 亚洲午夜影视影院在线观看| 盗摄精品av一区二区三区| 久久综合久色欧美综合狠狠| 亚洲色图都市小说| 成年人午夜久久久| 综合久久久久久| 91视视频在线直接观看在线看网页在线看| 欧美日韩大陆一区二区| 亚洲啪啪综合av一区二区三区| 成人精品视频一区二区三区尤物|