《Windows核心程式設計》讀書筆記(一)

2021-03-31 08:56:32 字數 950 閱讀 3785

第1章對程式錯誤的處理

(1)常見的windows函式的返回型別:

void: 無返回值型,該函式的執行不可能失敗。windows函式很少此型別

bool:函式執行失敗則返回0,否則返回非0

handle:失敗則返回null,否則返回乙個可操作的物件的handle。

注:有些函式會返回乙個控制代碼值invalid_handle_value,?它被定義為-1。函式的platform? sdk文件將會清楚地說明該函式執行失敗時返回的是null還是invalid_handle_valid

pvoid :函式執行失敗,則返回值是null,否則返回pvoid,以標識資料塊的記憶體位址

long/dword:這是個難以處理的值。返回數量的函式通常返longdword。如果由於某種原因,函式無    法對想要進行計數的物件進行計數,那麼該函式通常返回0或-1(根據函式而定)。如果呼叫的函式返回了long/dword,那麼請認真閱讀platform sdk文件以確保能正確?檢查潛在的錯誤。

(2)當某windows函式執行錯誤時,可以通過呼叫 dword getlast error()函式獲取呼叫該函式的關聯執行緒的32位錯誤**。其具體的錯誤文字以列表形式存放於winerror.h標頭檔案中,在vc中除錯時,也可以通過在watch視窗鍵入「@err,hr」來獲取所呼叫函式的執行錯誤**和具體的錯誤文字。

(3)windows還提供了乙個函式,可以將錯誤**轉換成它的文字描述。該函式稱為formatmessage,該函式的格式如下:

dword formatmessage(

dword dwflags,

lpcvoid psource,

dword dwmessageid,

dword dwlanguageid,

ptstr pszbuffer,

dword nsize,

va_list *argument

);2023年11月8號

讀書筆記 Windows核心程式設計

第二章 從windows nt後,windows所有版本都用unicode來構建。如果輸入乙個非unicom的字串,如ansi,函式會將其先轉換為unicode,再把結果傳回作業系統,這樣經過轉換後,需要更多的記憶體,而且執行速度更慢。並且,目前已知的windows的這些轉換函式存在一些bug。所有...

《Windows核心程式設計》讀書筆記(三)

unicode 寬位元組字符集是是為了解決軟體本地化 多語言版本化 而定製的一項技術標準。unicode字串中的所有字元都是16位的 兩個位元組 程式設計師只需要對指標進行遞增或者遞減,就可以遍歷字串中的各個字元,不在需要像單位元組字元一樣去判斷下一位元組是屬於同一字元的組成部分還是乙個新字元。使用...

《Windows核心程式設計》讀書筆記 四

第二章 unicode windows 中的unicode windows標頭檔案定義了幾種關於unicode的資料型別 wchar unicode字元 pwstr 指向unicode字串的指標 pcwstr 指向乙個恆定的unicode字串的指標 同時windows標頭檔案也定業了ansi uni...