第一篇:Windows引導錯誤總結
Windows引導錯誤總結
Yuki | | 2014年7月31日
1、BCD配置錯誤
概述:
這張圖片顯示的是BCD配置錯誤導致的引導問題,如何判斷呢?很簡單,圖中明確指出文件是BOOTBCD,所謂BCD,指的是Boot Configure Data,亦即啟動配置數據。在有Windnowso Vista或Windows7的多重操作系統中,系統通過Bootmgr程序導入BCD文件完成啟動菜單的引導。并且可用bcdedit.exe程序來編輯BCD文件,來調整開機默認操作系統和等待時間。
修復:
頁 1
BCD的修復依賴工具,如果無要求,我們一般采用第三方的一些啟動修復工具,比如NTBootAutoFix,BCDAutoFix,稍高級的做法是利用BCDEdit工具來手動編輯BCD,這需要對Windows的引導過程很熟悉,在此不作說明。
我們答題過程中一般不可以涉及第三方軟件,因此,我們需要使用微軟給我們提供的Windows自帶的程序--BCDboot來修復。
如何開啟BCDboot,在系統無法啟動的情況下,我們通常的建議是,使用微軟原版Windows系統安裝光盤啟動(這里要注意的是,最好是Windows7或者以上版本,低版本的Windows中不帶用BCDboot工具),然后在“現在安裝”界面按shift+F10來調出命令提示符(或者可以進入“修復計算機”選擇命令提示符,但是稍顯麻煩,故直接使用快捷鍵來實現)。
關于BCDboot的詳細命令行解釋,可以參考大群群共享我上傳的《BCDboot與DiskPart命令行》一文,在此只作修復方面的命令行應用說明。
首先,我們將引導分為2種模式,一種是傳統的BIOS模式,一種是UEFI模式,關于兩者的區別,可以參考大群群共享我上傳的《挑戰傳統BIOS的UEFI固件》一文。下面,分別來介紹兩種情況下的啟動修復。
(1)、BIOS引導模式
頁 2
BIOS引導模式對活動分區(引導分區)無特定要求,只要該分區為主分區并且處于激活狀態即可,因此,首先,我們需要確定活動分區,一般來說,如果使用原版Windows7(及以上版本的Windows,下同)安裝光盤分區的話,會自動劃分出一個100M的系統保留分區,用來存放系統引導文件,此時該分區為激活狀態。使用該方案的好處是,Windows默認不會為該系統保留分區分配盤符,這樣就避免了系統啟動引導文件被破壞或者篡改導致無法啟動,這也是很多Windows7激活軟件在激活之前要求給系統保留分區分配一個盤符的原因,如果不分配,則引導修改不能成功,也就無法加載動態SLIC完成軟激活。
我們可以使用Windows自帶的DiskPart工具來查看活動分區,還是在“現在安裝“界面,按shift+F10調出命令提示符,輸入”DiskPart“回車即可調出DiskPart工具,依次輸入以下幾行命令:
List disk 該命令用于列出已有磁盤,并編號,通常來說硬盤的編號為0 Select disk 0 字面意思即可理解,該命令是選中磁盤0,我們需要選中硬盤
List Partition 該命令用于列出當前選中磁盤上的分區
Select Partition X 該命令用于選擇分區,每一個分區前都有分區編號,根據分區編號來選擇。
assign letter=f 該命令用于給分區指定盤符f,f可以是任意盤符
頁 3
好了,現在回到我們的引導問題,假設現在有一臺筆記本,BIOS引導Windows7,開機出現BCD錯誤配置,我們用上面DiskPart命令得知其有一個系統保留分區并已經將其盤符指定為了Z,Windows所在的分區為C,那么就可以使用BCDboot工具來快速修復啟動了。
在命令提示符下輸入以下命令:
BCDboot C:Windows /l zh-cn /s Z: 依次解釋幾個參數的含義,C:Windows表示的就是Windows所在的目錄,/l指的是BOOTMGR的語言,我選擇zh-cn也就是簡體中文,/s指的是將啟動文件存放到指定的目錄,/s后面的路徑就是具體的啟動文件存放路徑。
那么,如果在安裝Windows時不是使用Windows安裝程序自帶的分區工具來分區,而是已經提前分好區了,則在這種情況下沒有默認的系統保留分區會被創建,引導分區就是當前的活動分區,假設為C,那么,我們的/s后面的路徑就要改為C:,這樣執行之后就完成了系統引導的修復。
另外值得一提的是,使用Windows 安裝光盤啟動,可以選擇“修復計算機“—修復妨礙啟動的問題,這個是系統自帶的啟動修復工具,但是效果不是很理想,很多情況下BCDboot可以修復成功而這個選項不可以。
頁 4
(2)、UEFI引導模式
UEFI引導模式很特殊,因為它的活動分區是指定的,即ESP分區(EFI System Partition)。關于UEFI的引導,可以參考我在大群共享的《關于在不破壞已有操作系統的情況下無損轉換分區表的一些總結》一文。
正因為其特殊性,我們在指定活動分區的時候不能隨意指定,并且在使用BCDboot生成EFI引導的時候還需要指定啟動類型為UEFI。
完整的修復方案如下:
首先要做的是掛載ESP分區,因為ESP分區是隱藏的,我們要給他分配一個盤符,這個操作可以在DiskPart中用assign letter=X來實現,也可以使用第三方的軟件,比如ESP分區掛載器或者DiskGenius來完成。假設我們將ESP分區掛載到O盤,則需要在命令提示符下輸入以下命令: bcdboot c:windows /s o: /f uefi /l zh-cn 各參數含義同BIOS模式的修復,/f指定啟動類型,這里的目錄需要根據實際情況自行修改。
還有一種方案,比較簡單,但是有個要求,系統安裝光盤必須以UEFI模式啟動。
頁 5
假設我們使用Windows8的安裝光盤以UEFI模式啟動(所謂UEFI模式啟動,就是在開機F12中選擇帶有EFI或者UEFI字樣的U盤或者光盤啟動),然后按shift+F10調出命令提示符,此時我們無需掛載ESP分區,只需要直接執行: Bcdboot c:windows /l zh-cn 回車即可自動指定UEFI模式啟動并修復啟動。
2、NT6.X 引導程序丟失 概述:
從Windows Vista(NT6.0)開始,微軟拋棄了在Windows XP中采用的NTLDR引導模式,轉而采用全新的bootmgr(引導管理器)來管理系統的引導工作。
出現這個提示表示引導管理器丟失,系統無法啟動。
Bootmgr存在于活動分區(引導分區)的根目錄,為隱藏和系統屬性,出現bootmgr is missing的問題,一般是由于意外刪除或者病毒等因素引起的。
頁 6
修復:
方案1:如果是因為活動分區設置不正確導致的,可以使用diskpart來重新指定并激活存有bootmgr的分區。具體實施方案:
使用原版系統安裝光盤啟動,在“現在安裝”界面按下shift+F10調出命令提示符,輸入diskpart回車,進入diskpart,然后依次輸入以下命令:
List disk 列出已有硬盤
Select disk 0 選擇硬盤,具體編號參見list List partition 列出已有分區
Select partition x 選擇帶有bootmgr的分區,x代表帶有bootmgr的分區編號
Active 將選中分區設置為活動分區
方案2:如果是因為活動分區中的bootmgr丟失導致的,請參考BCD配置錯誤的解決方案,同樣可以重新生成引導配置程序并自動配置。
方案3:如果是因為病毒等導致的,在方案2的基礎上進入系統之后執行全盤查殺。
如果以上方案無效,建議恢復系統。
頁 7
3、NT5.X 引導程序丟失
概述:
NTLDR是NT5.X或者更早版本的Windows的啟動引導程序,負責操作系統的裝載,NTLDR文件存在于系統盤的根目錄下,一般都在C盤根目錄,是一個隱藏并且具有只讀屬性的系統文件,只有在打開文件夾選項中的顯示隱藏文件才能看到它。
出現NTLDR is missing的錯誤提示,就說明NTLDR丟失無法找到,這樣操作系統自然也就無法引導。
修復:
由于NTLDR屬于NT5.X時代的引導,因此我們以Windows XP為例,我們需要一張原版Windows XP的安裝光盤,如何從光盤啟動就不說了,進入安裝程序之后,會有一個提示:要用故障恢復控制臺修復Windows XP安裝,請按R,按下R鍵,進入故障恢復控制臺。
然后執行以下步驟:
頁 8
>cd c: 轉到C盤
>copy x:I386NTLDR c: X為光驅盤符,復制光盤安裝文件的NTLDR到C盤根目錄
>exit 退出故障恢復控制臺
之后重新啟動即可。
4、GRUB類引導問題
概述:
GRUB是一個常見的啟動管理器,可以引導Windows、UNIX、Linux、OS X等多種操作系統,GRUB最常見的錯誤是在使用了Windows7的激活工具之后重啟出現的。
首先來談談Windows7 的激活工具激活原理。我們都知道,Windows7的OEM激活方式不是在線激活而是離線完成激活,也就是說,只要系統認定你符合品牌機OEM系統的特性,就自動給你激活,這個特性包含三個部分:SLIC2.1、OEM證書(xrm-ms)、OEM序列號。
頁 9
那么,激活工具的原理是什么呢?很簡單,首先導入品牌機OEM系統的證書和序列號,然后利用GRUB引導管理器,在加載系統的過程中動態加載一個虛擬的SLIC,讓系統識別到,然后系統會將SLIC、證書以及序列號進行比對,確認一致,即可自動激活。
所以,GRUB引導錯誤通常都是由激活工具引起的。
如何修復:
同BCD配置錯誤的修復方案。
5、PXE以及No bootable device類問題
概述:
頁
出現此類問題,多是由于無引導導致的,比如該圖提示“insert boot disk and press any key”,并且上方有PXE 字樣,表示系統已經嘗試從網卡啟動并且啟動失敗,此時本地磁盤也無可啟動項目,就會造成無法啟動,機器啟動掛起的情況,此類問題有以下原因:
1、硬盤引導丟失。
2、硬盤主引導記錄被破壞。
3、靜電導致的數據無法讀取。
4、硬盤線松動導致無法讀取數據。
頁 11
如何修復:
1、嘗試使用原版系統安裝光盤啟動,按shift+F10調出命令提示符,使用BCDboot命令來修復,具體可以參考NT6系引導程序丟失的修復方案。
2、同上(請使用Windows XP安裝光盤,Windows7好像去掉了FDISK工具了),進入命令提示符之后,輸入FDISK /MBR來重新建立主磁盤的主引導記錄。
3、拔下電池和外接電源,長按開機鍵30秒左右,重復3-4次,釋放靜電。
4、若是答題請建議用戶前往服務站處理(我們不指導用戶拆機),若是實際操作,嘗試重新插拔硬盤。
6、a disk read error occurred,please press ctrl+alt+delete to restart;
解決辦法:
備份數據,使用原版系統安裝光盤啟動,然后刪除所有分區之后重新分區安裝
頁 12
6、Boot.ini文件配置錯誤 概述:
Boot.ini是NT6系內核以前的Windows操作系統的引導配置文件,其作用跟NT6系引導的BCD文件類似,都是儲存已有操作系統的引導信息。由其擴展名為ini,不難得知該文件為配置文件,不具備可執行屬性,因此boot.ini文件必須配合NTLDR來完成系統的引導工作。
如何修復:
Boot.ini的修復比較簡單,因為不涉及GUID的問題,不像BCD那么復雜,大多數使用Windows XP的電腦都是單系統,這樣他們的boot.ini文件通用,只需要在另一臺可以正常使用的機器上拷貝C:boot.ini文件到目標機器的C盤根目錄即可完成修復。
頁 13
第二篇:引導學生坦然面對錯誤
引導學生坦然面對錯誤
一個人在成長過程中不可避免的要出現各種失誤,犯各種錯誤,其實,犯錯誤是正?,F象,我始終認為一個優秀人士的成長肯定會犯錯誤,他之所以優秀就是敢于承認錯誤并且加以改正。成年人如此,更何況我們的學生呢!
初中學生由于自控能力不強,所以在作業、紀律等方面會有意無意的出現問題,這個時候,有的學生選擇的是逃避老師,選擇的是自我原諒。面對這樣的孩子,老師千萬不能急躁,千萬不能急功近利,一定要靜下心來,給學生以引導。
有一段時間郝明華的作業總是出現問題,而且總能給自己找到借口,根據郝明華的近期表現我斷定她沒有把心思放在學習上,但每次與她談話都不順利,因為郝明華心態特別好,總是泰然自若的面對你,有問有答,把自己的問題一語帶過,在一次與她談話的過程中也不例外。
聽著她的自我闡述,我打斷了她,語重心長的告訴她,我從學生時代走過的,也哄騙過老師,其實哄騙沒有惡意,只是想逃脫老師的喋喋不休,所以當我成為一名老師以后,與學生談心總是言簡意賅,不羅里啰嗦,對于你的問題我沒有在班里談,也沒有請家長到校,其實在維護你做一名女生的尊嚴,也維護了咱們師生間的那份情誼,可是我不想用自己的善解人意換取你的蒙哄,敞開心扉可能會暴露自己的缺點,但是我卻更加信任你、尊重你,因為你的敞開心扉就是對我的尊重?!弊鹑苏?,人尊之
我的話很明了,沒有經過班級公布、家長處理是在尊重她、維護她的尊嚴與師生間的情誼,如果她總是遮遮掩掩只能公事公辦,到時候麻煩的是她,并且告訴她我喜歡坦言的人,坦然面對自己過失的孩子。
我心里非常清楚,在學生成長的過程中一次談話解決不了問題,但是孩子的成長離不開引導,自從我與郝明華那次談話以后,她作業的質量明顯提高,再出現問題時面對我比以前坦然多了,因為我們交流的過程中始終在尊重她。
當孩子能夠坦然的面對錯誤時她會更加自律、自信,因為坦然就意味著自信,作為一名老師要愛每一個學生,相信每一個學生,愛學生就要寬容學生,相信學生就要引導學生。
第三篇:Windows Server總結2
學習Windows Server總結
李靜 22號
一、Windows Server 2003 的版本: 1.Windows Server 2003 標準版
Windows Server 2003 標準版是滿足所有規模的公司(特別是小企業和工作組)日常需要的理想的多用途網絡操作系統。
2.Windows Server 2003 企業版
Windows Server 2003 企業版在 Windows Server 2003 標準版功能的基礎上生成,方法是添加業務關鍵的應用程序所需的可靠性功能。Windows Server 2003 企業版與 Windows Server 2003 標準版的主要區別在于:Windows Server 2003 企業版支持高性能服務器,并且可以群集服務器,以便處理更大的負荷。通過這些功能實現了可靠性,有助于確保系統即使在出現問題時仍可用。
3.Windows Server 2003 Datacenter(數據中心)版
Windows Server 2003 Datacenter 版是為使命關鍵的應用程序生成的,這些應用程序要求最高級別的可伸縮性、可用性和可靠性。針對要求最高級別的可伸縮性、可用性和可靠性的大型企業或國家機構等而設計的。
4.Windows Server 2003 Web 版
Windows Server 2003 Web 版是一種旨在主要用于承載單個 Web 站點(如單位內的部門站點)的新的 Windows 服務器操作系統。Windows Server 2003 Web 版只能通過指定的合作伙伴渠道獲取,不作零售。
二、Windows Server 2003 的核心技術
Windows Server 2003包含了基于Windows 2000 Server構建的核心技術,從而提供了經濟劃算的優質服務器操作系統。了解使Windows Server 2003在任意規模的單位里都能成為理想的服務器平臺的那些新功能和新技術。了解這一可靠的服務器操作系統如何使得機構和員工工作效率更高并且更好地溝通。
Windows Server 2003具有可靠性、可用性、可伸縮性和安全性,這使其成為高度可靠的平臺。
1.可用性(群集支持)
Windows Server 2003系列增強了群集支持,從而提高了其可用性。對于部署業務關鍵的應用程序、電子商務應用程序和各種業務應用程序的單位而言,群集服務是必不可少的,因為這些服務大大改進了單位的可用性、可伸縮性和易管理性。在Windows Server 2003中,群集安裝和設置更容易也更可靠,而該產品的增強網絡功能提供了更強的故障轉移能力和更長的系統運行時間。Windows Server 2003系列支持多達8個節點的服務器群集。如果群集中某個節點由于故障或者維護而不能使用,另一節點會立即提供服務,這一過程即為故障轉移。Windows Server 2003還支持網絡負載平衡(NLB),它在群集中各個結點之間平衡傳入的Internet協議(IP)通訊。
2.可伸縮性
Windows Server 2003 操作系統通過由對稱多處理技術(SMP)支持的向上擴展和由群集支持的向外擴展來提供可伸縮性。內部測試表明,與 Windows 2000 Server 相比,Windows Server 2003 在文件系統方面提供了更高的性能(提高了 140%),各種其他功能(包括 Microsoft Active Directory 服務、Web 服務器和終端服務器組件以及網絡服務)的性能也顯著提高。Windows Server 2003 的支持范圍從單處理器解決方案一直到 64 路系統。它可同時支持 32 位和 64 位處理器。
3.安全性
通過將Intranet、Extranet和Internet站點結合起來,各公司超越了傳統的局域網(LAN)。因此,系統安全問題比以往任何時候都更為嚴峻。作為Microsoft對可信賴、安全和可靠的計算的承諾的一部分,公司認真審查了Windows Server 2003系列,以弄清楚可能存在的錯誤和缺陷。Windows Server 2003在安全性方面提供了許多重要的新功能和改進。
4.管理服務
隨著桌面計算機、便攜式計算機和便攜式設備上計算量的激增,維護分布式個人計算機網絡的實際成本也顯著增加了。通過自動化來減少日常維護是降低操作成本的關鍵。Windows Server 2003新增了幾套重要的自動管理工具來幫助實現自動部署,包括Microsoft軟件更新服務(SUS)和服務器配置向導。新的組策略管理控制臺(GPMC)使得管理組策略更加容易,從而使更多的機構能夠更好地利用Active Directory服務及其強大的管理功能。此外,命令行工具使管理員可以從命令控制臺執行大多數任務。GPMC擬在Windows Server 2003發行之前作為一個獨立的組件出售。
5.XML Web服務和.NET Microsoft.NET已與Windows Server 2003系列緊密集成。它使用XML Web服務使軟件集成程度達到了前所未有的水平:分散、組塊化的應用程序通過Internet互相連接并與其他大型應用程序相連接。
通過集成到構成Microsoft平臺的產品中,.NET提供了通過XML Web服務迅速可靠地構建、托管、部署和使用安全的聯網解決方案的能力。Microsoft平臺提供了一套聯網所需的開發人員工具、客戶端應用程序、XML Web服務和服務器。這些XML Web服務提供了基于行業標準構建的可再次使用的組件,這些組件調用其他應用程序的功能,調用的方法獨立于創建應用程序,操作系統、平臺或設備用于訪問它們的方法。
利用XML Web服務,開發人員可以在企業內部集成應用程序,并跨網絡連接合作伙伴和客戶。這種先進的軟件技術使聯合合作成為可能,并且所帶來的更有效的商業到商業和商業到用戶服務可以對企業收入產生潛在的重要影響。數百萬其它用戶可以以各種組合使用這些組件,獲得高度個性化、智能化的計算體驗。
Windows Server 2003系列的其他.NET優點有助于開發人員:
① 利用現有的投資。現有用于Windows Server的基于Windows的應用程序將可以繼續運行在Windows Server 2003上,并且可被簡便地重新包裝為XML Web服務。
② 減少代碼的編寫工作量,使用已經掌握了的編程語言和工具。實現這一點要歸功于Windows Server 2003內置的應用程序服務,如ASP.NET、事務監視、消息隊列和數據訪問。
③ 進程監視、循環、內置指令用于為應用程序可提供可靠性、可用性和可伸縮性。
所有這些益處都在改進的內核Windows服務器結構中實現并構成了.NET的基礎。
6.Internet 信息服務 6.0。
為了提高 Web 服務器的安全性,Internet 信息服務(IIS)6.0 的默認配置提供了最大安全性。IIS 6.0 和 Windows Server 2003 提供了最可靠、最高效、連接最通暢以及集成度最高的 Web 服務器解決方案,該方案具有容錯、請求隊列、應用程序狀態監控、自動應用程序循環、高速緩存以及其他更多功能。這些功能是 IIS 6.0 中許多新功能的一部分,它們使您得以在 Web 上安全地開展業務。
三、Windows Server 2003 的特點 1.可靠性
Windows Server 2003 是 Microsoft 提供的迄今為止最快、最可靠和最安全的 Windows 服務器操作系統。Windows Server 2003 用以下方式保證可靠性:
① 提供具有基本價值的 IT 基礎結構:改進的可靠性、實用性和可伸縮性。② 在廣泛的操作系統功能基礎上提供一個具有內置的傳統應用程序服務器功能的應用系統平臺。
③ 集成了信息工作者基礎結構,從而有助于保護商業信息的安全性和可訪問性。2.高效性
Windows Server 2003 提供了各種工具,幫助您簡化部署和管理并獲得最高的生產效率。Windows Server 2003 通過以下方式實現這一目的: ① 提供靈活的工具,有助于使您的設計和部署與組織及網絡的要求相匹配。② 幫助您通過加強策略、自動執行任務以及簡化升級來主動管理網絡。③ 幫助您通過讓用戶自行處理更多任務來降低支持開銷。3.連接(方便性)
Windows Server 2003 為快速構建解決方案提供了可擴展的平臺,使員工、合作伙伴、系統和客戶保持連接。
Windows Server 2003 通過以下方式實現這一目的:
① 提供集成的 Web 服務器和流式媒體服務器,幫助您快速、輕松和安全地創建動態 Intranet 和 Internet 網站。
② 提供內置的服務,幫助您輕松地開發、部署和管理 XML Web 服務。
③ 提供多種工具,使您得以將 XML Web 服務與內部應用程序、供應商和合作伙伴連接起來。4.經濟性
當與 Microsoft 的許多硬件、軟件和渠道合作伙伴提供的產品和服務結合使用時,Windows Server 2003 可幫助您從基礎結構投資中獲得最大回報。Windows Server 2003 通過以下方式實現這一目的:
① 為使您得以快速將技術投入使用的完整解決方案提供簡單易用的規范性指南。② 通過利用最新的硬件、軟件和方法來優化服務器部署,幫助您合并各個服務器。③ 降低您的總體擁有成本(TCO),快速獲得投資回報。
三、學習Windows Server 2003 的體會和收獲
Windows Server 2003的優點,對電腦配置要求并不高,速度快,安全性高,商用為主,適用于企業用戶組建網服務器,使用時比家用XP復雜。
但是,我不但從中鞏固了原有的知識和技能,而且也系統地學習了Windows Server 2003的服務器操作系統和它的功能。
第四篇:Windows編程知識點總結
1、基于MFC對話框程序的框架代碼主要由一下幾個部分組成:
A.應用程序類
B.對話框類
C.資源文件
D.預編譯文件
2、Windows是建立在消息驅動機制上的。
3、模態對話框運行機制?
當模態對話框產生后,應用程序沒有處理消息,唯一的解釋就是模態對話框產生后會屏蔽其他窗體消息。事實也正是如此,創建模態對話框后,應用程序只會響應該對話框的消息,知道應用收到結束模態對話框窗體的消息后,才會把控制權交還給應用程序。
4、非模態對話框
與模態對話框不同,非模態對話框不會壟斷用戶的輸入,用戶任然可以使用其他窗體。
5、屬性對話框主要分為兩個部分:
A.屬性頁
B.屬性對話框架
6、屬性頁只是對話框的一種形式。
7、控件的邏輯順序決定著軟件中需要使用TAB進行焦點切換時的順序排列。
8、控件按鈕有四種基本類型:
A.下壓按鈕
B.復選按鈕
C.單選按鈕
D.自繪按鈕
9、按鈕控件會向父窗口發出控件通知消息
A.BN_CLICKED:鼠標單擊消息
B.BN_DOUBLECLICKED:鼠標雙擊擊消息
C.BN_SETFOCUS:獲取用戶輸入焦點
D.BN_KILLFOCUS:失去用戶輸入焦點
10、在MFC環境下,除了使用CButton類本身的成員函數來操作按鈕控件,還可以使用窗體相關類的成員函數,使用這些函數可以根據按鈕ID直接進行操作。
11、MFC的CEdit類封裝了編輯框控件的基本操作。
12、UPPERCASES設置大寫,lowerCase設置小寫,Number設置只能接受數字,Password設置顯示為*。
13、MFC的CListBox類封裝了列表框控件的基本操作。
14、AddString:添加字符串列表項
DeleteString:刪除字符串列表項
Dir:從當前目錄向列表框添加文件名
FindString:在列表框中查找包含指定前綴的第一個列表項
FindStringExact:在列表框中查找與指定字符串匹配的列表項
InsertString:向列表框中插入一個列表項
ResetContentp:清空編輯框和列表框的所有內容
Selectstring:在列表框中查找字符串
15、組合框有三種模式:
簡易式
下拉式
下拉列表式
16、組合框有兩種形式:
Dropdown樣式
Drop List樣式
17、MFC的CProgressCtrl類封裝了進度條控件的基本操作。
18、tist->SetTimer(1,100,NULL)
設置計時器ID為1,每100ms觸發一次
19、tist->KillTimer(1)
關閉計時器120、列表控件有四種呈現方式:
圖標視圖
小圖標視圖
列表視圖
報表視圖
21、文檔視圖結構是使用MFC開發基于文檔的應用程序的基本框架,最主要的思想是數據的管理與顯示分離。
22視圖類CView23、使用AppWizard創建SDI和MDI的過程相似,主要區別是創建SDI時不生成CChildFrame類,CMainFrame的基類為CMainWnd;而創建MDI時會生成兩個框架類,一個是CMainFrame類,由CMDIFrameWnd類派生而來,另一個是CChildFrame類,由CMDIChildWnd類派生而來
24、文檔與視圖體系
一個文檔可以對應多個視圖,而一個視圖只能對應一個文檔
文檔與視圖的結構的優勢在于數據的管理與顯示分離,在開發文檔/視圖體系開發應用過程時,涉及到:文檔模板、文檔、視圖、框架窗口
25、MFC的CView類是所有視圖類的基類,主要有兩大工能:
將與其相關聯文檔的數據呈現給用戶
接受用戶對數據的修改,并反饋給文檔
26、建立MFC單文檔應用程序,實例項目名稱為“single”框架會自動生成4個類:
CSingleApp類:應用程序類
CMainFrame類:框架類
CSingleDoc文檔類
CSingleView類:視圖類
27、在MFC中使用GDI 進行繪畫操作一般會涉及兩類對象:
設備上下文對象
GDI對象
28、設備上下文,是一種windows數據結構,它包含與設備繪制屬性相關的信息。
29、主要有一下幾種GDI 對象:
CPen對象:用來繪制線條
CBrush對象:用來填充繪制對象的內部
CBitmap對象:用來操作位圖對象
CFont對象:用來繪制文本
CPalette對象:用于應用程序和色彩輸出設備之間的接口
30、使用GDI進行圖形繪制的一般流程:
創建GDI對象
創建獲取得設備上下文對象
使用SelectObject把GDI對象選入設備上下文
使用圖形輸出函數在指定上下文中繪制圖形
31、畫刷其實是一個像素大小為8*8的位圖,用多個相同的位圖對封圖形的內部進行填充
32、位圖
位圖是描述圖形最簡單直觀的一種形式,把圖像橫向分為等間距的W列,縱向分為等間距的H列,于是這個圖形的大小被定義為分辨率W*H33、鍵盤上的每一個健都對應一個唯一的掃描碼,在windows系統中為實現設備無關的要求,需要使用虛擬鍵值
34、當有鍵盤事件發生時,設備驅動器首先獲取健的掃描碼,并轉換為虛擬鍵值
35、在應用程序中響應鍵盤消息有兩種方式:
響應本進程的鍵盤消息
響應系統的鍵盤消息
36、keybd_event只是用于產生鍵盤事件,至于由誰來處理他并不關心。系統捕捉到鍵盤事件后,會轉化為鍵盤消息的形式派發給當前系統中擁有鍵盤輸入焦點的應用程序。SendMessage和PostMasseage的區別在于,PostMasseage首先把消息發到指定句柄所在線程的消息隊列再由線程派發。SendMessage是把消息直接發送的指定句柄的窗體或控件。而往往很多情況下。指定句柄是個控件。而對控件的消息消息處理一般都是定義在主對話框上的。除非對其進行子類化,如果使用SendMessage,消息就無法到達主對話框因而無法達到預期的效果。
37、TCP協議是一個面向連接的、可靠的協議,UDP協議是一個不可靠的、無連接的協議
38、因特網控制報文協議(Internet Control Message Protocol,ICMP)
39、套接字是一種網絡編程接口,提供了一種網絡數據發送和接受機制,套接字是網絡通信的基礎,一個套接字表示通信的一端,使用套接字可以實現數據包在網絡上的傳輸。
40、soket函數,用來根據指定的地址協議簇、套接字類型和協議類型創建一個套接字。
listen函數,監聽遠程連接
accept函數,用來接受客戶端連接。
sendto函數,用來向指定地址發送數據。
recv函數,用來在已建立連接的套接字上接收數據。
recvfrom函數,用來在指定套接字上接收數據。
setsockopt函數,用來設置套接字屬性。
41、進程是一個正在運行的程序的實例,有兩部分組成:
一個操作系統用來管理進程的內核對象。
創建時系統所分配的資源,主要是內存地址單元。
41、進程地址空間作為一個載體。包含進城的所有數據和代碼以及堆和棧。為線程的運行提供保障。
42、進程是靜態的43、線程也有兩個部分組成:
線程內核對象;線程堆棧。
44、線程是動態的、可執行的、它總是在某個進程的環境中創建的。
45、每個線程都是運行在其所屬進程的地址空間,因此線程只能訪問本進程的地址空間,而其他進程對其是不可見的46、所謂‘頁’,只是操作系統為了更好的管理地址空間所產生的一個邏輯上的概念,把一個固定長度的地址空間作為一個頁,通常為4kb,系統在在對地址空間進行管理時,把每4kb的空間作為一個單位,最終形成內存管理的多級索引結構。
47、物理存儲器和進程虛擬地址空間的映射是無序的,每一個進程虛擬地址空間也只能由一個物理存儲器頁來映射。
48、“地址轉換機構”就是負責他們彼此之間的關聯。
49、虛擬內存也有三種基本狀態:
空閑:地址空間沒有被占用,不能使用
保留:地址空間沒有被占用,但還沒有與物理存儲器相關聯,不能使用。
提交:且已經與物理存儲器相關聯,可以使用。
50、內存映射文件
內存映射文件可以在進程中保留一個地址空間區域,并把磁盤文件提交給該區域。一旦映射成功,就可以在內存中直接操作文件,而不再需要使用readfile、writefile等文件操作API。
51、情況下會使用內存映射文件:
系統使用內存映射文件加載可執行模塊(.exe)和動態鏈接(DDL)
操作數據文件
共享內存
52、消息傳遞
消息傳遞機制并不以進程為界限,處理消息的是窗體,而與是否在同一進程無關。因而在進程間使用消息傳遞作為通信手段有個前提,即都是窗體應用程序。
53、共享內存的原理
使用內存共享機制,在任何一個進程內創建內存映射,卻能夠在其他多個進程中使用。這些進程共享的是物理內存器的同一個頁面,把這些物理內存映射到虛擬內存時各個進程的虛擬地址不一定相同。當一個進程將數據寫入共享內存時,其他進程可以立即獲取數據變更情況,顯然這種共享內存的方式是完全可以滿足在進程間進行大數據快速傳輸任務要求的。
54、與內存映射磁盤文件一樣,共享內存的本質也是內存映射機制。
55、使用系統頁文件支持的內存映射文件,及共享內存。
56、進程間通信的三種基本方法:匿名管道、命名管道、郵槽
57、管道是用于進程間通信的共享內存區域。創建管道的進程稱為管道服務器,而連接這兩個管道的進程稱為管道客戶端,一個進程向管道寫入信息,另外一個進程從管道讀取信息
58、匿名管道
匿名管道是基于字符和半雙工的,一般用于程序輸入輸出的重定向。如果需要獲取一個基于控制臺窗口應用程序的輸出,此時就可以是用匿名管道,首先使用CreatePipe函數創建匿名管道。
59、命名管道的特征:
命名管道是雙向的,進程間可以使用同一管道進行交互
命名管道不但可以面向字節流,還可以面向消息。所以讀取進行可以讀取寫進程發送的不同長度的消息
多個獨立的管道實例可以用同一個名稱來命名。
命名管道可以用于網絡間兩個進程的通信,而其實現過程與本地進程通信完全一致
60、創建命名管道使用CreateNamedPipe函數
61、郵槽是實現單通道的進程間通信的通信方式。創建郵槽的進程稱為郵槽服務器,向郵槽發送消息的進程稱為郵槽客戶端
60、創建郵槽使用CreateMailslot函數
61、windows剪貼板是一種比較簡單同時也是開銷比較小的進程間通信方式。
62、剪貼板通信機制
windows系統支持剪貼板IPC的基本機制室友系統預留的一塊全局共享內存,可用于被各個進程暫時存儲數據。寫入進程首先穿件一個全局內存塊,并將數據寫到該內存塊;接受數據的進程通過剪貼板機制獲取此內存塊的句柄,并完成對該內存塊數據的讀取。
63、剪貼板通信有5種基本情況:
文本剪貼板
位圖剪貼板
自定義格式
延遲提交
多項數據
63、進程同步可分為兩大類:
訪問共享資源,多個進程訪問進程共享資源時,需要確保資源不受破壞。
事件通知,一個線程完成某項任務后通知其他線程。
64、原子訪問,是指線程對共享資源的獨占式訪問。
65、關鍵代碼段,是指在執行前首先去的對共享資源的訪問權,然后讓代碼以原子操作方式執行來訪問共享資源的一種方法。
66、內核對象等待函數,其所等待的也正是內核對象的受信狀態。
67、內核對象本質上只是一個內存塊。
68、內核對象是操作系統對資源進行管理的單位。
69、內核對象有兩種狀態:已通知狀態、未通知狀態
70、在所有內核對象中,事件內核對象是最基本的對象,事件內核對象有兩種狀態:已通知狀態、未通知狀態。在多線程環境先經常使用事件內核對象的這種特性實現線程同步。
71、事件內核對象有兩種基本類型:手動重置事件、自動重置事件。
72、等待定時器內核對象是可以在某個指定時間或者以規定的間隔發出通知信號的內核對象,一般在某個線程需要定時執行某項功能時用這種內核對項
73、信標內核對項常用于在多線程環境下控制某類資源的使用,使用信標內核對象可以讓系統自動地維護資源的數量,并合理的控制線程對資源的訪問情況。
74、信標的出色之處在于它們能夠以原子操作方式來執行測試和設置操作,當向信標申請一個資源時,操作系統就要檢驗是否有這個資源可供使用,同時將可用資源的數量遞減,而不讓另一個線程加以干擾。只有當資源數量遞減后,系統才允許另一個線程申請對資源的訪問權。
75、如果線程需要訪問該資源就要先獲取互斥對象,所有線程都應遵循這個規則。
76、動態鏈接庫(DLL)是Windows操作系統的基礎,所有API函數都包含在DLL中。應用程序并不是只有一個可執行程序,而是由一個可執行模塊和若干個DLL模塊組成。當執行應用程序時,系統會把與可執行模塊相鏈接的DLL模塊加載到當前進程地址空間。
77、動態鏈接庫(DLL)的最大特性是支持動態載入。
78、要產生可執行文件有兩個步驟:
1)編譯過程。編譯源碼,為每個C/C++源文件生成一個.obj模塊,由編譯器完成。
2)鏈接過程。把應用程序的各個.obj模塊鏈接起來產生.exe文件,有鏈接器完成。
79、DLL隱式鏈接,是指在鏈接過程中,把應用程序所需要DLL模塊的名字和輸入符號都記錄下來,使得應用程序在運行時可以動態載入該DLL。
80、與隱式鏈接相比,顯示加載DLL主要有以下幾個特性:
1)顯示加載的DLL并不會在應用程序初始化時就加載,而是在運行時根據需要調用LoadLibrary或LoadLibraryEx函數來加載。
2)在應用程序輸入表中沒有記錄。
3)隱式鏈接的前提是需要有DLL所對應的lib文件,如果沒有lib文件就無法進行隱式鏈接。顯示加載就沒有這個限制。
81、DllMain函數是DLL的可選入口。
82、線程本地存儲器(TLS)的主要作用是可以避免多個線程同時訪問同一全局或者靜態變量時導致的沖突。
83、TLS有兩種使用方法:靜態TLS和動態TLS。
84、結構異常處理有三種基本的使用方法,分別是結束異常程序、異常處理程序和頂層異常處理。
85結構化異常處理(SEH)是被作為一種系統機制引入到操作系統中的。
86、可執行文件格式(PE),其格式中得分數據結構通常定義在winnt.h中。
第五篇:windows phone 總結
Windows phone8項目總結報告
半年的時間,自己在總結它的時候,感覺是那么的短暫,彈指一揮間。而也就是在這一揮間,承載著太多、太多的東西,有收獲與成就,有失敗與不足。回頭看看2013上半年的足跡,伴隨著我們半年的是學習與堅持..而它已成為過去,我們卻微笑面對未來。
2013年4月是通過windows phone開門管家系統拉開序幕.此次項目是一個相對比較完整的手機端項目,從基礎的業務介紹,到需求分析,數據庫分析與設計,頁面設計,代碼編寫?在項目開始之前對于windows phone的開發一個謎團,.直到整個項目的完成,通過這個項目學到了很多知識。體驗心得:
一、Windows Phone 8由于平臺本身不夠成熟,可實現的功能較少,一般挑選核心的功能。另外,Windows Phone 8系統本身限制,導致Windows Phone 8應用程序的可玩性還不足。
二、對于windows phone 8的開發,作為.net的開發者,對于window phone 地代碼編寫,思維邏輯,都是大同小異,對于我來說或windows phone 開發的新手來說,前期是對windows phone的設計理念和控件設計準則作為學習深入重點,了解了window phone 的個性與特點,對windows phone應用程序的開發有事半功倍的效果.三、作為學習者,要善于 抄襲,模仿,借鑒,這樣對學習者來說進步是相當快的,“總結是知識的提升,創新是最好的總結” 這是我對學習名言總結。
項目體念:
1.全景視(Panorama)和pivot視圖的應用場景和使用方法有一定區別,Panorama更適合于娛樂性較強的應用程序。由于規范了圖片和顏色的一致性,視覺整體效果大為改觀。
2.Windows Phone 8以圖片、色塊和文字為主,注意排版的對齊,但方式比較單一,有時無法利用一些輔助元素去強調交互操作或信息的重點。利用圖片元素時一定要保證圖片的質量,一張差圖對界面的整體影響非常大。
3.Windows phone 的設計理念是以簡單快捷為主,沒有繁瑣的設計框架結構。
致軟件開發者---------“路漫漫其修遠兮,吾將上下而求索?!?/p>
2013-08-28