1 windows程式錯誤的處理機制 windows API的傳回型別資料類型 表示失敗的值 V O I D 該函數的運行不可能失敗。Wi n d o w s 函數的傳回值類型很少是V O I D B O O L如果函數運行失敗,那麼傳回值是0 ,否則返回的是非0 值。最好對傳回值進行測試,以確定它是0 還是非0 。不要測試傳回值是否為T R U E H A N D L E如果函數運行失敗,則傳回值通常是N U L L ,否則傳回值為H A N D L E
字元unicode與windows 1 軟體的本地化要解決的真正問題,實際上就是如何來處理不同的字元集。以前我們習慣與用單一位元組字元集來編程.2 單字元集:將文本串作為一系列單位元組字元來進行編碼,並在結尾處放上一個零。(每個字元用一個位元組來表示)3 雙位元組字元集(D B C S ):在雙位元組字元集中,字串中的每個字元可以包含一個位元組或包含兩個位元組。4 unicode字元集:U n i c o d e 提供了一種簡單而又一致的表示字串的方法。U n i c o d e
1.應用程式相容性 Windows Vista 作業系統的核心層級採用變更的架構,使得作業系統本身就比 Windows XP 更安全。不過,這需要付出代價;許多應用程式需要經過修改,才能在 Windows Vista 環境正常運作。在 Windows Vista ( 後 Service Pack 1) 生命週期的這個時間點,大部分的應用程式現在都已經相容,早期將 Windows Vista 部署 至桌上型電腦環境,需要一些相當吃力和具有創意的銜接做法 - 更不要說還要熬夜個幾天。在與
摘要:在Windows中所有的應用程式實際上都以是線程的方式啟動並執行。在設計多線程應用程式中有時必須線上程之間保持一定的同步關係,才能使使用者能夠對獨立啟動並執行線程進行有效控制。為此本文在簡要介紹Windows中線程的概念及其建立方法後,提出了一種在多線程之間利用 event對象實現事件同步的控制方法。最後還介紹了在不同應用程式之間進行同步事件控制的方法,這種方法使得不同應用程式進行相互間的同步事件控制變得很簡單。 一. 引言 Windows
比線程更小的單位,好像用的不多的哦纖程的操作 首先要注意的一個問題是,實現線程的是Wi n d o w s核心。作業系統清楚地知道線程的情況,並且根據M i c r o s o f t定義的演算法對線程進行調度。纖程是以使用者方式代碼來實現的,核心並不知道纖程,並且它們是根據使用者定義的演算法來調度的。由於你定義了纖程的調度演算法,因此,就核心而言,纖程採用非搶佔式調度方式。
進程的虛擬位址空間 每個進程都被賦予它自己的虛擬位址空間。對於3 2位進程來說,這個地址空間是4 G B,因為3 2位指標可以擁有從0 x 0 0 0 0 0 0 0 0至0 x F F F F F F F F之間的任何一個值。這使得一個指標能夠擁有4 294 967 296個值中的一個值,它覆蓋了一個進程的4 G B虛擬空間的範圍。
Wi n d o w s提供了3種進行記憶體管理的方法,它們是: • 虛擬記憶體,最適合用來管理大型物件或結構數組。 • 記憶體對應檔,最適合用來管理大型資料流(通常來自檔案)以及在單個電腦上啟動並執行多個進程之間共用資料。 • 記憶體堆棧,最適合用來管理大量的小對象。虛擬記憶體的狀態 Wi n d o w s函數G l o b a l M e m o r y S t a t u s可用於檢索關於當前記憶體狀態的動態資訊: VOID
學習《 windows 核心編程》 u 字元集,一切軟體的基礎,單字集(用 1 個位元組表示一個字元),雙位元組字元集( DBCS, 並不是用 2 個位元組表示一個字元哦,而是用 1 個, 2 個,或多個位元組的混合來表示字元),寬位元組字元集( unicode 用 2 個位元組來表示一個字元)。對 windows 作業系統來說, windows 98 核心用 ANSI , windows ME 用 unicode , windows 2000 以後的版本也用 unicode
與虛擬記憶體一樣,記憶體對應檔可以用來保留一個地址空間的地區,並將實體儲存體器提交給該地區。它們之間的差別是,實體儲存體器來自一個已經位於磁碟上的檔案,而不是系統的頁檔案。一旦該檔案被映射,就可以訪問它,就像整個檔案已經載入記憶體一樣。 記憶體對應檔可以用於3個不同的目的: • 系統使用記憶體對應檔,以便載入和執行. e x e和D L L檔案。這可以大大節省頁檔案空間和應用程式啟動運行所需的時間。 • 可以使用記憶體對應檔來訪問磁碟上的資料檔案。這使你可以不必對檔案執行I /
DLL的進入點函數 一個D L L可以擁有單個進入點函數。系統在不同的時間調用這個進入點函數,這個問題將在下面加以介紹。這些調用可以用來提供一些資訊,通常用於供D L L進行每個進程或線程的初始化和清除操作。如果你的D L L不需要這些通知資訊,就不必在D L L原始碼中實現這個函數。例如,如果你建立一個只包含資源的D L L,就不必實現該函數。如果確實需要在D L L中接受通知資訊,可以實作類別似下面的進入點函數: BOOL WINAPI DllMain(HINSTANCE